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()を使用してください。