2010-12-05 7 views
6

",7-6-5-4-3-2-1,".split(',')は何を返す必要がありますか?"、7-6-5-4-3-2-1、"とする必要があります。split( '、')return?

blank string 
    7-6-5-4-3-2-1 

すなわちを返すようです。 2つの弦。私は1つまたは3つの文字列のいずれかを期待しています - 両端の空文字列か '、'の間の文字列だけです。

私は間違っていますか?現在の行動の良い説明はありますか?

編集:

OK。そう、はい、私は間違った期待を持っていた、いいえ、Java以外の良い説明はありませんその方法:)。ありがとう。

EDIT2:

あなたはsplit(",", -1) (スカラ座2.8.1)を用いて所望の動作を得ることができ

答えて

12

これは、それがどのように動作するかです。

末尾の空の文字列は結果の配列に含まれていませんので、hereを参照してください。

+4

's.split("、 "、-1)'を使って空の文字列を含めることができることに注意してください。 –

7

動作は予期されています。ます[...]パターンは、できるだけ多くの回適用され、配列は任意の長さを有することができる

、空の文字列を末尾:String#split(Char)は、最終的に(StringLike#split(Char)String#split(String)を介して)documentedされているJava String#split(String, 0)を呼び出し編集

を破棄すること - あなたは、分割文字列をより細かく制御したい場合は、Guava librariesSplitterを見てください。

Splitter.on(',').split(",7-6-5-4-3-2-1,") 
関連する問題