2011-12-28 14 views

答えて

5

java.lang.String.split();
使用法: このメソッドによって返される配列には、指定された式に一致する、または文字列の最後で終了する別の部分文字列で終わる、この文字列の各部分文字列が含まれます。配列内の部分文字列は、この文字列内で発生する順序にあります。式が入力のどの部分にもマッチしない場合、結果の配列はただ1つの要素、つまりこの文字列を持ちます。

org.apache.commons.lang.StringUtils.splitPreserveAllTokens();
使用: 隣接するセパレータによって作成された空のトークン含むすべてのトークン、を維持し、指定された配列、分離器に提供されたテキストを分割します。これはStringTokenizerを使用する代わりの方法です。

続きを読む:kickjava_src_apache_StringUtils

String.split()を分割し、最終的なクラスPatternを使用しています。 StringUtilsで

Pattern.compile(regex).split(this , limit); 

splitWorker(String str, char separatorChar, boolean preserveAllTokens)を使用して、それが2.0(JDK1.4)のパフォーマンスチューンで自分の方法、です。

+0

空のトークンは分割されませんか? –

+0

あなたはこの[質問]から正確な答えを見つけることができます(http://stackoverflow.com/questions/225337/how-do-i-split-a-string-with-any-whitespace-chars-as-delimiters) –

+0

ありがとうございます。私は区切り記号としてコンマを使用しているので、ここではString.split()の問題ではないはずです。しかし、私はStringUtils splitworkerによって提供されるパフォーマンスの向上を失うことになり、私は自分でnullを処理する必要があります。 –

2
I found folowing difference between String.split and splitByWholeSeparatorPreserveAllTokens 
  • splitByWholeSeparatorPreserveAllTokensのstring.Split()がsplitByWholeSeparatorPreserveAllTokensAdjacentセパレータにおいて
  • が空のトークンのセパレータとして 扱われないNULL値を処理します。