我一直在使用Split()方法拆分字符串,但这似乎只在按字符拆分字符串时有效。有没有一种方法可以拆分一个字符串,另一个字符串作为拆分依据参数?
我尝试过将拆分器转换为字符数组,但没有成功。
换句话说,我想拆分字符串:
Thexx快速xx棕色xx FOX
通过xx,并返回一个值为的数组:
快,棕色,狐狸
我一直在使用Split()方法拆分字符串,但这似乎只在按字符拆分字符串时有效。有没有一种方法可以拆分一个字符串,另一个字符串作为拆分依据参数?
我尝试过将拆分器转换为字符数组,但没有成功。
换句话说,我想拆分字符串:
Thexx快速xx棕色xx FOX
通过xx,并返回一个值为的数组:
快,棕色,狐狸
当前回答
首先创建此函数。
string[] xSplit(string str, string sep) {
return str.Split(new [] {sep}, StringSplitOptions.None);
}
然后像这样使用。
xSplit("THExxQUICKxxBROWNxxFOX", "xx");
其他回答
string data = "THExxQUICKxxBROWNxxFOX";
return data.Replace("xx","|").Split('|');
只需仔细选择替换字符(选择一个不太可能出现在字符串中的字符)!
我通常喜欢使用自己的扩展名:
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);
}
}
但是,如果Microsoft决定在以后的版本中包含此方法重载,则这将导致异常。这也是微软在此期间没有加入这种方法的可能原因:至少有一家我工作过的公司在他们的所有C#项目中都使用了这种扩展。
如果方法不存在,也可以在运行时有条件地定义该方法。
首先创建此函数。
string[] xSplit(string str, string sep) {
return str.Split(new [] {sep}, StringSplitOptions.None);
}
然后像这样使用。
xSplit("THExxQUICKxxBROWNxxFOX", "xx");
Regex.Split(string, "xx")
是我通常做的方式。
当然,您需要:
using System.Text.RegularExpressions;
or :
System.Text.RegularExpressions.Regex.Split(string, "xx")
但我还是需要那个图书馆。
从.NET Core 2.0开始,有一个采用字符串的重写。
现在你可以做“THExxQUICKxxBROWNxxFOX”。拆分(“xx”)。
看见https://learn.microsoft.com/en-us/dotnet/api/system.string.split?view=netcore-2.0#System_String_Split_System_String_System_StringSplitOptions_