7

のような文字列があり、文字列を記号||81|||01||で分割したい。|

このようにしていたのですが、

String str = "||81|||01||";
System.out.println(str .split("\\|").length); //printing 6 . But I am expecting 8

このコードの何が問題になっていますか? | | 8この文字列をその文字で分割して、予想される長さ ( )を得るにはどうすればよいですか?;

4

6 に答える 6

8

印刷:

System.out.println(Arrays.toString(str.split("\\|")));

そして、なぜそれが 6 を印刷しているのか理解できるでしょう。

public String[] split(String regex, int limit)を使用して、やりたいことを試すことができます。

limit パラメーターは、パターンが適用される回数を制御するため、結果の配列の長さに影響します。

したがって、次のことを行う必要があります。

System.out.println(str.split("\\|", -1).length);

ここで、配列を印刷すると、次のように印刷されます。

[, , 81, , , 01, , ]あなたが期待したように。

于 2013-04-30T10:26:53.083 に答える
3

string.split(Pattern.quote("|"),-1) を使用して、特殊文字で文字列を分割することもできます。

于 2015-05-04T08:59:00.817 に答える