如何用另一个字符串拆分字符串?

时间:2010-04-12 12:03:03

标签: c#

我有以下格式的字符串

“TestString 1 < ^> TestString 2 < ^> 测试String3

我希望将其拆分为“< ^>”字符串。

使用以下语句,它给出了我想要的输出

"TestString 1 <^> TestString 2 <^> Test String3"
 .Split("<^>".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)

但是如果我的字符串包含“&lt;” ,“&gt;”或者“^”文本中的任何地方,然后上面的split语句也会考虑

知道如何仅为“&lt; ^&gt;”进行拆分字符串?

3 个答案:

答案 0 :(得分:14)

使用ToCharArray,你说“分裂任何这些角色”;要拆分序列 "<^>",您必须使用接受string[]的重载:

string[] parts = yourValue.Split(new string[]{"<^>"}, StringSplitOptions.None);

或者在C#3中:

string[] parts = yourValue.Split(new[]{"<^>"}, StringSplitOptions.None);

答案 1 :(得分:2)

编辑:正如其他人已经指出的那样:String.Split对你的用例有很好的重载。下面的答案仍然是正确的(如在工作中),但是 - 不是要走的路。


那是因为这个string.Split重载需要一个分隔符字符数组。他们每个人都分裂了字符串。

你想:Regex.Split

Regex regex = new Regex(@"<\^>");
string[] substrings = regex.Split("TestString 1 <^> TestString 2 <^>  Test String3");

并且 - 旁注:

"<^>".ToCharArray()

实际上只是一种奇特的说法

new[]{'<', '^', '>'}

答案 2 :(得分:1)

尝试另一种重载的Split方法:

public string[] Split(
    string[] separator,
    StringSplitOptions options
)

所以在你的情况下,它可能看起来像:

var result = 
    yourString.Split(new string[] {"<^>"},StringSplitOptions.RemoveEmptyEntries);

希望,这有帮助。