0

文字列分割関数を使用して文字列を分割しようとしています。例を次に示します。

    String[] list = "   Hello   ".split("\\s+");
    System.out.println("String length: " + list.length);
    for (String s : list) {
        System.out.println("----");
        System.out.println(s);
    }

出力は次のとおりです。

String length: 2
----

----
Hello

ご覧のとおり、先頭の空白は String 配列の空の要素になりますが、末尾の空白はそうではありません。

誰かが理由を知っていますか?

4

2 に答える 2

3

制限を指定し、制限を指定する他の分割方法を使用する必要があります-1

String[] list = "   Hello   ".split("\\s+", -1);

末尾の空白を保持する - デフォルトの動作では、 javadocに従って末尾のスペースを省略します


編集(コメントの回答):

先頭のスペースを削除するには、先頭のスペースを削除してから、String

String str = "   Hello   ".replaceAll("^\\s+", "");
String[] list = str.split("\\s+", -1);
于 2013-08-02T00:03:52.753 に答える