0

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

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

输出:

ABC@@^^@@DEF对于 getText1 和 getText2。

正确的 OUTPUT 应该是 getText1 的 ABC 和 getText2 的 DEF。

我如何解决它?谢谢。

4

3 回答 3

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
于 2012-05-07T09:36:18.177 回答
1

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

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

Trim 只删除开头的字符,Replace 会查看整个字符串。

您可以使用(方便命名的) String.Split方法将字符串分成两部分。

char[] Delimiter = { '@', '^' };
string[] text = exactString.Split(Delimiter, StringSplitOptions.RemoveEmptyEntries);
//text[0] = "ABC", text[1] = "DEF
于 2012-05-07T09:31:41.923 回答
1

你可以使用String.Split 方法

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);
于 2012-05-07T09:40:08.867 回答