0
class Test{
    public static void main(String[] arg){
        String str1="a,,";
        String str2="a,,b";
        System.out.println(str1+" len="+str1.split(",").length);
        System.out.println(str2+" len="+str2.split(",").length);
    }
}

出力は

a,, len=1
a,,b len=3

部品点数はどちらも3点ではないでしょうか?

4

4 に答える 4

0

いいえ、あなたが見ているものは完全に正常です。私が言える最善のことは、ドキュメントを ciopy-paste することです:

このメソッドによって返される配列には、指定された式に一致する別の部分文字列で終了するか、文字列の末尾で終了する、この文字列の各部分文字列が含まれます。配列内の部分文字列は、この文字列で発生する順序になっています。式が入力のどの部分とも一致しない場合、結果の配列には 1 つの要素、つまりこの文字列のみが含まれます。

limit パラメーターは、パターンが適用される回数を制御するため、結果の配列の長さに影響します。制限 n が 0 より大きい場合、パターンは最大で n - 1 回適用され、配列の長さは n 以下になり、配列の最後のエントリには、最後に一致した区切り文字を超えるすべての入力が含まれます。n が正でない場合、パターンは可能な限り何度でも適用され、配列は任意の長さにすることができます。n がゼロの場合、パターンは可能な限り何度でも適用され、配列の長さは任意であり、末尾の空の文字列は破棄されます。

よりよく理解するには、ドキュメントを読む必要があります =)
http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

于 2013-10-24T10:10:41.137 に答える
0

この例はオラクルのドキュメントにあります。これにより、すべての混乱が解決されます。

文字列 "boo:and:foo" 正規表現 "o"

結果 { "b", "", ":and:f" }

http://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String)

于 2013-10-24T10:13:01.653 に答える