2014-01-10 10 views
9

特定のテキストファイルの行をチェックしています。行には空白が含まれていて、空白ではなく行内の単語の数を調べることにのみ関心があります。私が行いますパラメータなしの分割とRemoveEmptyEntriesオプションの使用の違い

string[] arrParts = strLine.Trim().Split(); 

if (arrParts.Length > 0) 
{ 
    ... 
} 

を今、MSDNによると、

If the separator parameter is null or contains no characters, white-space characters are assumed to be the delimiters. White-space characters are defined by the Unicode standard and return true if they are passed to the Char.IsWhiteSpace method. 

IsWhiteSpace方法はusuals含む空白の多くの多様な形態について説明しますが、最近私が使用この形式を見てきました' ' \t and \n

を:

Split(new char[0], StringSplitOptions.RemoveEmptyEntries)

これはどう違うのですか?

答えて

6

は、次の文字列を考えてみましょう:

"Some Words"//notice the double space 

空白に分割し、3つの項目が含まれますSplit()を使用した(「一部」、「」、「言葉」)ので、ダブルスペースの。

StringSplitOptions.RemoveEmptyEntriesオプションはEmtpyエントリを割り引くために機能を指示し、それはそれを2つの項目( "一部"、 "言葉")完全性については

Here is a working example


をもたらすであろう、new char[0]パラメータがありますStringSplitOptionsを指定できる過負荷にアクセスするために供給されます。デフォルト区切り文字を使用するには、区切りパラメータはnullまたは長さゼロでなければなりません。ただし、この場合はnullを使用すると複数のオーバーロードが発生するため、有効なタイプ(char[]またはstring[])を指定する必要があります。これは、(char[])nullまたはnull as char[]などの複数の方法で行うことができます。また、上記のようなゼロ長の文字配列を使用することもできます。

See here for more information

0

RemoveEmptyEntriesを使用せずに、あなたは結果配列で空の文字列を取得する可能性があります。

関連する問題