2015-04-06 156 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'。 –