2011-09-12 21 views
23

を返さない:C#の:文字列を分割し、私は、文字列を持って空の文字列

a = "1;2;3;" 

そして、私はそれをこのようにsplitしたいと思います:

foreach (string b in a.split(';')) 

は、どのように私は私が返すことを確認することができます123 '空の文字列'ではありませんか?

私が分割した場合、1;2;3は私が望むものを得るでしょう。しかし、私が分割した場合は、1;2;3;、私は余分な '空の文字列'を取得します。持っている 'のstring.Split(文字[] のparams')

エラー1のための最良のオーバーロードされたメソッドの試合:

string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEntries); 

しかし、私は取得していますこれらのエラー:私はこれを提案を取り、行っていますいくつかの無効な引数をC:\ Documentsと Settings \のagordon \ Visual Studioのプロジェクト\ 2008 \ lomdb \ EnterData \ DataEntry DAL.cs \ 18 36 EnterData

エラー2引数\マイドキュメント '2':から変換できません " System.StringSplitOptions ' "シャアをC:\ DocumentsとSettings \ agordon \マイドキュメントのVisual Studio \ 2008プロジェクト\ lomdb \ EnterData \ DataEntry \ DAL.cs \ 18 68 EnterData

答えて

43

文字列。スプリットは、任意のStringSplitOptions含む配列を取ります

string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries); 

あなたがオプションを必要としない場合は、構文が容易になる:上記のコード

string[] batchstring = batch_idTextBox.Text.Split(';'); 
5

パスStringSplitOptions.RemoveEmptyEntries分割方法に関するものです。

EDIT

分割方法は、単一の文字で分割する過負荷を持っていません。文字の配列を指定する必要があります。

foo.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries); 
18

StringSplitOptionsを使用してください。

a.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries); 
1

この打撃を与える:

string test = "1;2;3;"; 
test = String.Join(",", test.TrimEnd((char)59).Split((char)59)); 

string test = "1;2;3;"; 
test = String.Join(",", test.TrimEnd(';').Split(';')); 
1

は、分割のオプションについては知りませんでした。あなたはあなたができると持っていなかった場合は...

a.Split(';').Where(s => s.Length > 0).ToArray(); 
1

使用

a.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); 

.Splitの4つのオーバーロードがありますが、それらの2はStringSplitOptionsをサポートしてparams形式(あなたはそうは使用しないでくださいスプリッタの配列を作成する必要はありません)、そのうちの2つはStringSplitOptionsをサポートし、charまたはstringの配列が必要です。

1
string line="Hello! Have nice day." 
string[] substr = line.Split(new[] {' '}, 2); 

2つのサブストリングに行を分割します第1の空間に基づいている。 substr [0]には「Hello!」があります。 substr [1]には "いい日です"と表示されます。 Splitの2は整数カウンタです。要件に基づいて任意の値を渡すことができます。

関連する問題