Ada*_*son 1153
为了按字符串分割,您必须使用字符串数组重载.
string data = "THExxQUICKxxBROWNxxFOX";
return data.Split(new string[] { "xx" }, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
Gre*_*reg 116
"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
您可以使用这些StringSplitOptions中的任何一个
因此,如果字符串是"THExxQUICKxxxxBROWNxxFOX",StringSplitOptions.None
则将返回数组中"xxxx"部分的空条目,而StringSplitOptions.RemoveEmptyEntries
不会.
Pet*_*ter 66
Regex.Split(string, "xx")
Run Code Online (Sandbox Code Playgroud)
是我通常这样做的方式.当然你需要一个
using System.Text.RegularExpressions;
Run Code Online (Sandbox Code Playgroud)
但是我一直都需要那个lib.
bru*_*nde 43
String.Split有一个重载:
"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);
Run Code Online (Sandbox Code Playgroud)
Lor*_*uer 22
我通常喜欢使用我自己的扩展:
string data = "THExxQUICKxxBROWNxxFOX";
var dataspt = data.Split("xx");
//>THE QUICK BROWN FOX
//the extension class must be declared as static
public static class StringExtension
{
public static string[] Split(this string str, string splitter)
{
return str.Split(new[] { splitter }, StringSplitOptions.None);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果Microsoft决定在更高版本中包含此方法重载,则会导致异常.这也是微软在此期间未包含此方法的可能原因:至少有一家我工作过的公司在所有C#项目中都使用了这种扩展.
如果方法不存在,也可以在运行时有条件地定义该方法.
string data = "THExxQUICKxxBROWNxxFOX";
return data.Replace("xx","|").Split('|');
Run Code Online (Sandbox Code Playgroud)
只需仔细选择替换字符(选择一个不太可能存在于字符串中的字符)!
以上答案都是正确的.我更进一步,通过在String上定义一个扩展方法让C#为我工作:
public static string[] Split(this string toSplit, string splitOn) {
return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}
Run Code Online (Sandbox Code Playgroud)
这样我可以用简单的方式在任何字符串上调用它,我天真地期望我第一次尝试完成此操作:
"a big long string with stuff to split on".Split("g str");
Run Code Online (Sandbox Code Playgroud)