我可以在不引用Microsoft.VisualBasic的情况下拆分c#VB6样式的字符串吗?
时间:2020-03-06 14:56:38 来源:igfitidea点击:
不幸的是,似乎没有string.Split(字符串分隔符),只有string.Split(字符分隔符)。
我想基于多字符分隔符la VB6分解字符串。是否有一种简单的方法(即,不必通过引用Microsoft.VisualBasic或者不必学习RegExes)在c#中执行此操作?
编辑:使用.NET Framework 3.5.
解决方案
分割字符串的正则表达式非常简单,所以我会选择该路线。
http://msdn.microsoft.com/zh-CN/library/8yttk7sy.aspx
哪个版本的.Net?至少2.0及更高版本包含以下重载:
.Split(string[] separator, StringSplitOptions options) .Split(string[] separator, int count, StringSplitOptions options)
现在,如果他们只修复它以接受任何IEnumerable <string>而不是仅接受数组。
String.Split()
还有其他重载。其中一些带有string []
参数。
string original = "first;&second;&third"; string[] splitResults = original.Split( new string[] { ";&" }, StringSplitOptions.None );
regex版本可能更漂亮,但这也可以工作:
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);
通过http://msdn.microsoft.com/en-us/library/tabh47cf.aspx
我一直在.NET 2.0下使用它。
string[] args = "first;&second;&third".Split(";&".ToCharArray(),StringSplitOptions.RemoveEmptyEntries);