public static void main(String args[]) {
String sub="0110000";
String a[]=sub.split("");
System.out.println(Arrays.toString(a));
}
出力は次のようになります
[, 0, 1, 1, 0, 0, 0, 0]
なぜ最初の要素がnullなのですか?最初にnullなしの配列を取得するにはどうすればよいですか?
最初の引数は実際にはnullではなく、空の文字列""
です。これが出力の一部である理由は、空の文字列で分割するためです。
スプリットのドキュメントは言う
このメソッドによって返される配列には、この文字列の各部分文字列が含まれ、指定された式に一致する別の部分文字列で終了するか、文字列の末尾で終了します。
入力文字列の各位置は空の文字列(位置0を含む)で始まります。したがって、split関数も入力を位置0で分割します。位置0の前に文字がないため、最初の要素の空の文字列になります。
代わりにこれを試してください:
String sub = "0110000";
String a[] = sub.split("(?<=.)");
System.out.println(Arrays.toString(a));
出力:
[0, 1, 1, 0, 0, 0, 0]
パターン(?<=.)
は、任意の文字()に一致する「幅がゼロのポジティブ後読み」です.
。つまり、大まかに言って、「空の文字列の前に何らかの文字を置いて分割する」ということです。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加