Java –如何分割字符串

要拆分字符串,请使用 (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 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 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示例

在过去,Java开发人员喜欢使用类来拆分字符串。 这是因为StringTokenizer类自JDK 1.0起可用,而String.split()自JDK 1.4起可用

TestSplit.java 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() 。

参考文献

翻译自:
经验分享 程序员 微信小程序 职场和发展