ドキュメントから:
String[] split(String regex)
--戻り値:この文字列を特定の正規表現に一致するように分割して計算された文字列の配列
基本的に、正規表現は、入力文字列の区切り文字を定義するために使用されます。パターン内でキャプチャ グループと後方参照を使用できますが (ルックアラウンドなど)、最終的に重要なのはパターンが何にどこで一致するかです。
正規表現を使用して元の文字列を 7 つの部分に分割する場合は、次のようにすることができます。
String s = "12-3456";
String[] parts = s.split("(?!^)");
System.out.println(parts.length); // prints "7"
for (String part : parts) {
System.out.println("Part [" + part + "]");
} // prints "[1] [2] [-] [3] [4] [5] [6] "
(?!^)
これは、文字列の最初の文字の前を除く任意の場所にあるゼロ長の一致する assertion で分割されます。これにより、空の文字列が配列の最初の要素になることを防ぎ、末尾の空の文字列は既に破棄されていlimit
ますsplit
。
ただし、このように正規表現を使用して文字列の個々の文字を取得するのはやり過ぎです。数文字しかない場合、最も簡潔なオプションは次のように使用foreach
することtoCharArray()
です。
for (char ch : "12-3456".toCharArray()) {
System.out.print("[" + ch + "] ");
}
文字列が長い場合、これは最も効率的なオプションではありません。
分裂中-
これもあなたが探しているものかもしれません:
String s = "12-3456";
String[] parts = s.split("-");
System.out.println(parts.length); // prints "2"
for (String part : parts) {
System.out.print("[" + part + "] ");
} // prints "[12] [3456] "