2017-05-30 95 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