2015-04-06 102 views
0

我试图将一个字符串拆分成只有两个部分,其中分隔符可以出现多次。如何将字符串拆分为N部分?

下面的代码,我不能指定限制选项不起作用:

Dim output = input.Split("=", 1) 

任何想法?

+0

是它不接受限制参数。 https://msdn.microsoft.com/en-us/library/6x627e5f%28v=vs.90%29.aspx –

+0

但我想调用“string.split(”=“)”而不是“Split(String, “=”,1) –

+0

看看https://msdn.microsoft.com/en-us/library/bb384936.aspx然后 –

回答

1

您可以使用String.Split(Char[], Int32, StringSplitOptions)过载。

请注意,第一个参数是一个Char数组,而不是单个字符。第二个参数使您可以指定要返回的最大子字符串数量。

VB.NET

Option Strict On 

重要提示:您应该始终有strict compiler option设置为

Dim input As String = "aaaa=bbbb=cccc=dddd" 
Dim separators As Char() = { "="c } 
Dim count As Integer = 2 
Dim options As StringSplitOptions = StringSplitOptions.RemoveEmptyEntries 
Dim output As String() = input.Split(separators, count, options) 

For Each part As String In output 
    Console.WriteLine(part) 
Next 

C#

string input = "aaaa=bbbb=cccc=dddd"; 
char[] separators = new[] { '=' }; 
int count = 2; 
StringSplitOptions options = StringSplitOptions.RemoveEmptyEntries; 
string[] output = input.Split(separators, count, options); 

foreach (string part in output) 
{ 
    Console.WriteLine(part); 
} 

这将返回包含两个元素的数组:

AAAA
BBBB = CCCC = DDDD

+0

工作!非常感谢:) –

+0

还有另一个问题:如果输入=“参数=值”,everthing是好的。但它的输入=“参数=”,我得到一个IndexOutOfRangeException。 –

+0

当然,你需要检查字符串是否包含'='。用'If(input.Contains(“=”),2,1)'替换'2'。 –