String.split (regex)
String phone = "012-3456789";
String[] output = phone.split("-");
System.out.println(output[0]);
System.out.println(output[1]);
输出量
012
3456789
注意
此split (regex)将正则表达式作为参数,请记住转义正则表达式的特殊字符 ,例如句点/点。
1.分割句点/点
\\.
对其进行转义\\.
或使用Pattern.quote
方法。
TestSplit.java
package com.mkyong.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.mkyong.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示例
StringTokenizer
类来拆分字符串。 这是因为StringTokenizer
类自JDK 1.0起可用,而String.split()
自JDK 1.4起可用
TestSplit.java
package com.mkyong.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
注意
此StringTokenizer是一个旧类,出于兼容性原因而保留,不建议使用! 请使用string.split()
参考文献