2017-05-30 60 views
1

在Java中,你可以很容易地做这样的事情:分割字符串由两个字符串

String[] result = input.split("AAA|BBB"); 

这意味着如果你有一个这样的输入:

sssAAAvvvBBBuuu 

的结果会是这样:

sss 
vvv 
uuu 

什么是在c#中做到这一点的最佳方法,我知道你几乎不能在c#中用另一个字符串拆分字符串:

string[] result = input.Split(new string[] { "AAA" }, StringSplitOptions.None); 

但是如何分割字符串与两个字符串AAA和BBB?

回答

13

只需添加另一个分隔符阵:

string[] result = input.Split(new string[] { "AAA", "BBB" }, StringSplitOptions.None); 
+1

,并在C#中,你可以简化这个来的:var结果= input.Split(新[] { “AAA”, “BBB”} ,StringSplitOptions.None); – realbart

+0

@realbart,NO,这会降低可重写性 – Rahul

+1

StringSplitOptions.RemoveEmptyEntries是更好的选择,如果你不需要“AAA”,“BBB” – andy

3

您可以使用正则表达式:

string[] result = Regex.Split(input, "AAA|BBB"); 
0

答低于

string test = "sssAAAvvvBBBuuu"; 

string[] list = test.Split(new string[] { "AAA", "BBB" }, StringSplitOptions.None); 

我希望你的Git答案

0

你可以使用这个:

string str = "sssAAAvvvBBBuuu"; 
string[] separators = {"AAA", "BBB" }; 
string[] result = str.Trim().Split(separators, StringSplitOptions.RemoveEmptyEntries); 
0

或者,你可以创建一个函数,并调用

public static string[] SplitString(string input) 
{ 
    return Regex.Split(input, "AAA|BBB"); 
} 

foreach (string word in SplitString("sssAAAvvvBBBuuu")) 
{ 
    ........ 
    ........ 
} 

Output: sss 
     vvv 
     uuu