【发布时间】:2010-09-14 08:36:48
【问题描述】:
可惜好像没有string.Split(string separator),只有string.Split(char speparator)。
我想根据多字符分隔符(如 VB6)来分解我的字符串。在 c# 中是否有一种简单的(即不是通过引用 Microsoft.VisualBasic 或必须学习 RegExes)方法来做到这一点?
编辑:使用 .NET Framework 3.5。
【问题讨论】:
可惜好像没有string.Split(string separator),只有string.Split(char speparator)。
我想根据多字符分隔符(如 VB6)来分解我的字符串。在 c# 中是否有一种简单的(即不是通过引用 Microsoft.VisualBasic 或必须学习 RegExes)方法来做到这一点?
编辑:使用 .NET Framework 3.5。
【问题讨论】:
String.Split() 有其他重载。其中一些采用string[] 参数。
string original = "first;&second;&third";
string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );
【讨论】:
分割字符串的正则表达式非常简单,所以我会选择这条路线。
【讨论】:
.Net 的哪个版本?至少 2.0 及以后的版本包括以下重载:
.Split(string[] separator, StringSplitOptions options)
.Split(string[] separator, int count, StringSplitOptions options)
现在,如果他们只修复它以接受任何 IEnumerable
【讨论】:
正则表达式版本可能更漂亮,但这也有效:
string[] y = { "bar" };
string x = "foobarfoo";
foreach (string s in x.Split(y, StringSplitOptions.None))
Console.WriteLine(s);
这将打印 foo 两次。
【讨论】:
string[] stringSeparators = new string[] {"[stop]"};
string[] result;
result = someString.Split(stringSeparators, StringSplitOptions.None);
【讨论】:
我一直在 .NET 2.0 下使用它。
string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);
【讨论】: