Java –文字列を分割する方法
文字列を分割するには、String.split(regex)
を使用します。 次の例を確認します。
String phone = "012-3456789"; String[] output = phone.split("-"); System.out.println(output[0]); System.out.println(output[1]);
出力
012 3456789
Note
このsplit (regex)
は、引数として正規表現を取ります。ピリオド/ドットのように、regex
special charactersをエスケープすることを忘れないでください。
1. 期間/ドットを分割する
ピリオド/ドットは正規表現の特殊文字です。ダブルバックラッシュ\.
でエスケープするか、Pattern.quote
メソッドを使用する必要があります。
TestSplit.java
package com.example.test import java.util.regex.Pattern; public class TestSplit { public static void main(String[] args) { String test = "abc.def.123"; String[] output = test.split("\\."); //alternative //String[] output = test.split(Pattern.quote(".")); System.out.println(output[0]); System.out.println(output[1]); System.out.println(output[2]); } }
出力
abc def 123
分割前の一般的なチェック。
TestSplit.java
package com.example.test import java.util.regex.Pattern; public class TestSplit { public static void main(String[] args) { String test = "abc.def.123"; if(test.contains(".")){ String[] output = test.split("\\."); if(output.length!=3){ throw new IllegalArgumentException(test + " - invalid format!"); }else{ System.out.println(output[0]); System.out.println(output[1]); System.out.println(output[2]); } }else{ throw new IllegalArgumentException(test + " - invalid format!"); } } }
2. StringTokenizerの例
昔、Java開発者は、StringTokenizer
クラスを使用して文字列を分割することを好みました。 これは、StringTokenizer
クラスがJDK 1.0以降で使用可能であり、String.split()
がJDK1.4以降で使用可能であるためです。
TestSplit.java
package com.example.test import java.util.StringTokenizer; public class TestSplit { public static void main(String[] args) { String test = "abc.def.123"; StringTokenizer token = new StringTokenizer(test, "."); while (token.hasMoreTokens()) { System.out.println(token.nextToken()); } } }
出力
abc def 123
Note
このStringTokenizer
はレガシークラスであり、互換性の理由で保持されています。使用はお勧めしません。 string.split()
を使用してください。