我可以在不引用Microsoft.VisualBasic的情况下以c#VB6样式拆分字符串吗?
题
不幸的是,似乎没有string.Split(字符串分隔符),只有string.Split(char speparator)。
我想基于多字符分隔符来分解我的字符串,即VB6。有没有一个简单的(也就是说,不是通过引用Microsoft.VisualBasic或不得不学习RegExes)的方式在c#中这样做?
编辑:使用.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 <!> lt; string <!> gt;而不只是数组。
正则表达式版本可能更漂亮,但这也有效:
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);
不隶属于 StackOverflow