我一直在使用Split()方法拆分字符串,但这似乎只在按字符拆分字符串时有效。有没有一种方法可以拆分一个字符串,另一个字符串作为拆分依据参数?

我尝试过将拆分器转换为字符数组,但没有成功。

换句话说,我想拆分字符串:

Thexx快速xx棕色xx FOX

通过xx,并返回一个值为的数组:

快,棕色,狐狸


当前回答

有一个String.Split重载:

"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);

其他回答

有一个String.Split重载:

"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx"}, StringSplitOptions.None);

首先创建此函数。

string[] xSplit(string str, string sep) {
    return str.Split(new [] {sep}, StringSplitOptions.None);
}

然后像这样使用。

xSplit("THExxQUICKxxBROWNxxFOX", "xx");

编辑:查看@Danation的答案,了解更新/更少的棋盘格过载


Split有一个接受字符串的重载。

"THExxQUICKxxBROWNxxFOX".Split(new [] { "xx" }, StringSplitOptions.None);

您可以使用以下任一StringSplitOptions

None—返回值包含数组包含空字符串的元素RemoveEmptyEntries-返回值不包括数组元素包含空字符串

因此,如果字符串为“THExxQUICKxxxxBROWNxxFOX”,StringSplitOptions.None将在数组中为“xxxx”部分返回一个空条目,而StringSplitOptions.RemoveEmptyEntries则不会。

最简单的方法是使用字符串。替换:

string myString = "THExxQUICKxxBROWNxxFOX";
mystring = mystring.Replace("xx", ", ");

或者更简单地说:

string myString = "THExxQUICKxxBROWNxxFOX".Replace("xx", ", ");

这也很简单:

string data = "THExxQUICKxxBROWNxxFOX";
string[] arr = data.Split("xx".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);