2015-04-28 54 views
2

我串输出为如何从一个字符串剩余的不需要焦炭

String mystring="My Name¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥"; 

我如何采取¥¥¥¥¥¥我的字。我使用C#。

我想这

mystring.Trim('¥'); 

,但它没有工作

林进行聊天,这是我的代码

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using System.Net; 
using System.Net.Sockets; 
namespace Chat 
{ 
public partial class Form1 : Form 
{ 

    Socket sck; 
    EndPoint epLocal, epRemote; 

    public Form1() 
    { 
     InitializeComponent(); 

     sck = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
     sck.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true); 

     textLocalIp.Text= GetLocalIP(); 
     textFriendsIp.Text = GetLocalIP(); 
    } 

    private string GetLocalIP() 
    { 
     IPHostEntry host; 
     host = Dns.GetHostEntry(Dns.GetHostName()); 
     foreach (IPAddress ip in host.AddressList) 
     { 
      if (ip.AddressFamily == AddressFamily.InterNetwork) 
      { 
       return ip.ToString(); 
      } 
     } 
     return "127.0.0.1"; 
    } 


    private void MessageCallBack(IAsyncResult aResult) 
    { 
     try 
     { 
      int size = sck.EndReceiveFrom(aResult, ref epRemote); 
      if (size > 0) 
      { 
       byte[] receivedData = new byte[1464]; 
       receivedData = (byte[])aResult.AsyncState; 
       ASCIIEncoding eEncoding = new ASCIIEncoding(); 
       string receivedMessage = eEncoding.GetString(receivedData); 
       string c = Caesar(receivedMessage, -1); // String recibido se cambia alreves 
       //Console.WriteLine(c.Trim(new Char[] { '¥' })); //Here is where it doesnt work//////////////////// 

       listMessage.Items.Add("Anonymous: "+c.Trim( '¥' )); 


      } 

      byte[] buffer = new byte[1500]; 
      sck.BeginReceiveFrom(buffer, 
       0, 
       buffer.Length, 
       SocketFlags.None, 
       ref epRemote, 
       new AsyncCallback(MessageCallBack), 
       buffer); 



     } 
     catch (Exception exp) 
     { 
      MessageBox.Show(exp.ToString()); 
     } 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); 

      string b = Caesar(textMessage.Text, 1); // Sending the Chipper 


      byte[] msg = new byte[1500]; 
      msg = enc.GetBytes(b); 

      sck.Send(msg); 
      listMessage.Items.Add("You: "+textMessage.Text); 
      textMessage.Clear(); 
     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      //epLocal = new IPEndPoint(IPAddress.Parse(textLocalIP.Text, Convert.ToInt32(textLocalPort.Text)); 
      epLocal = new IPEndPoint(IPAddress.Parse(textLocalIp.Text),Convert.ToInt32(textLocalPort.Text)); 
      sck.Bind(epLocal); 

      epRemote = new IPEndPoint(IPAddress.Parse(textFriendsIp.Text), 
       Convert.ToInt32(textFriendsPort.Text)); 
      sck.Connect(epRemote); 

      byte[] buffer = new byte[1500]; 
      sck.BeginReceiveFrom(buffer, 
       0, 
       buffer.Length, 
       SocketFlags.None, 
       ref epRemote, 
       new AsyncCallback(MessageCallBack), 
       buffer); 

      button1.Text = "Connected!"; 
      button1.Enabled = false; 
      button2.Enabled = true; 
      textMessage.Focus(); 

     } 
     catch(Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
     } 
    } 


static string Caesar(string value, int shift) 
    { 
    char[] buffer = value.ToCharArray(); 
    for (int i = 0; i < buffer.Length; i++) 
    { 
     // Letter. 
     char letter = buffer[i]; 
     // Add shift to all. 
     letter = (char)(letter + shift); 
     // Subtract 26 on overflow. 
     // Add 26 on underflow. 
    if (letter > 'z') 
    { 
    letter = (char)(letter - 26); 
    } 
    else if (letter < 'a') 
    { 
    letter = (char)(letter + 26); 
    } 
    // Store. 
    buffer[i] = letter; 
} 
return new string(buffer); 
} 

} 

}

的错误是在那里我将其标记,并且我的输出像我的名字一样出现¥本领可以应付, ¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥所以我只是想如果你希望变量拥有新的价值,你需要确保你分配到分开吧

+0

mystring.Trim( '¥')我想这 –

+0

结果是什么?你能展示更多的代码吗?它对我来说工作得很好。 – bit

+1

似乎工作。 https://dotnetfiddle.net/bYPq6T – Blorgbeard

回答

9

结果返回给它:

mystring = mystring.Trim('¥'); 
0

这是另一种删除拖尾字符的方法。

作为每Microsoft

的TrimEnd方法从当前字符串所有尾随 字符处于trimChars参数删除。当不在trimChars中的第一个字符在字符串末尾遇到 时,修剪操作 停止。

mystring = mystring.TrimEnd('¥'); 
相关问题