Trimstart和TrimEnd不按预期工作

时间:2012-05-07 09:29:49

标签: c#

我正在测试通过C#剪切字符串,但我没有正确得到结果。 它仍然显示全文exactString。

String exactString = ABC@@^^@@DEF
char[] Delimiter = { '@', '@', '^', '^', '@', '@' };
string getText1 = exactString.TrimEnd(Delimiter);
string getText2 = exactString.TrimStart(Delimiter);
MessageBox.Show(getText1);
MessageBox.Show(getText2);

输出:

对于getText1和getText2,

ABC@@^^@@DEF

应该是正确的输出 用于getText1的ABC和用于getText2的DEF。

我该如何解决? 感谢。

3 个答案:

答案 0 :(得分:7)

您希望拆分您的字符串,而不是修剪它。因此,正确的使用方法是String.Split

String exactString = "ABC@@^^@@DEF";
var result = exactString.Split(new string[] {"@@^^@@"}, StringSplitOptions.None);
Console.WriteLine(result[0]);  // outputs ABC
Console.WriteLine(result[1]);  // outputs DEF

答案 1 :(得分:1)

您正在寻找String.Replace,而不是修剪。

char[] Delimiter = { '@', '^' };
string getText1 = exactString.Replace(Delimiter,'');

修剪只删除开头的字符,替换整个字符串。

您可以使用(方便命名的)String.Split方法将字符串拆分为2个。

char[] Delimiter = { '@', '^' };
string[] text = exactString.Split(Delimiter, StringSplitOptions.RemoveEmptyEntries);
//text[0] = "ABC", text[1] = "DEF

答案 2 :(得分:1)

您可以使用String.Split Method

String exactString = "ABC@@^^@@DEF";
string[] splits = exactString.Split(new string[]{"@@^^@@"}, StringSplitOptions.None);
string getText1 = splits[0];
string getText2 = splits[1];
MessageBox.Show(getText1);
MessageBox.Show(getText2);