关于.net:在C#中用另一个字符串拆分一个字符串

Split a string by another string in C#

我一直在使用Split()方法来拆分字符串,但这似乎只在您按字符拆分字符串时有效。有没有一种方法可以拆分一个string,另一个字符串是split by参数?

我试过将拆分器转换为字符数组,但运气不好。

换言之,我想拆分string

THExxQUICKxxBROWNxxFOX

通过xx返回一个值为:

THE, QUICK, BROWN, FOX


要按字符串拆分,必须使用字符串数组重载。

1
2
3
string data ="THExxQUICKxxBROWNxxFOX";

return data.Split(new string[] {"xx" }, StringSplitOptions.None);


需要字符串的拆分超载。

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

您可以使用以下任一字符串拆分选项

  • 无-返回值包括数组包含空字符串的元素
  • removeEmptyEntries-返回值不包括数组元素包含空字符串

因此,如果字符串是"thexxquickxxxxbrownxxfox",那么StringSplitOptions.None将在数组中为"xxxx"部分返回一个空条目,而StringSplitOptions.RemoveEmptyEntries将不会返回。


1
Regex.Split(string,"xx")

是我通常做的方式。当然你需要一个

1
using System.Text.RegularExpressions;

但我还是一直需要那个图书馆。


字符串过载。为此拆分:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
"THExxQUICKxxBROWNxxFOX".Split(new [] {"xx
<div class="
suo-content">[collapse title=""]<ul><li>唯一删除不必要的数组类型声明的答案。</li></ul>[/collapse]</div><hr>
<p>
I generally like to use my own extension for that:
</p>

[cc lang="
csharp"]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项目中都使用了这种扩展。

如果方法不存在,也可以在运行时有条件地定义它。


前面的答案都是正确的。我更进一步,通过在字符串上定义一个扩展方法,使C为我工作:

1
2
3
public static string[] Split(this string toSplit, string splitOn) {
    return toSplit.Split(new string[] { splitOn }, StringSplitOptions.None);
}

这样,我就可以用简单的方式在任何字符串上调用它,我天真地希望第一次尝试实现这一点时:

1
"a big long string with stuff to split on".Split("g str");


1
2
3
string data ="THExxQUICKxxBROWNxxFOX";

return data.Replace("xx","|").Split('|');

只需仔细选择替换字符(选择一个不可能已经出现在字符串中的字符)!


这也很简单:

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


最简单的方法是使用String.Replace

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

或者更简单地说:

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