のような文字列があり、文字列を記号||81|||01||
で分割したい。|
このようにしていたのですが、
String str = "||81|||01||";
System.out.println(str .split("\\|").length); //printing 6 . But I am expecting 8
このコードの何が問題になっていますか? | | 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, , ]
あなたが期待したように。
string.split(Pattern.quote("|"),-1) を使用して、特殊文字で文字列を分割することもできます。