split和StringTokenizer使用多个分隔符的情况

public String[] split(String regex)

根据给定正则表达式的匹配拆分此字符串。

public StringTokenizer(String str, String delim) 
str - 要解析的字符串。
delim - 分隔符。


这篇文章主要说明的是,当需要用多个分隔符的时候,应该如何编写;


代码:

import java.util.StringTokenizer;

public class MultiplySeparator {

	// 测试多个分隔符的情况
	public static void main(String[] args) {
		String content = "a,b,c,d;e;f.g,d;f.h.z.v.b.m#e";
		String[] results = content.split("\\.|;|#|,"); //注意这里的转义  		
		for(int i = 0; i < results.length; i++) {
			System.out.println(results[i]);
		}
		
		System.out.println("==== 快乐的分隔线 ====");
		
		StringTokenizer st = new StringTokenizer(content, ".,#");
		while(st.hasMoreTokens()) {
			System.out.println(st.nextToken());
		}
	}

}

运行结果:

a
b
c
d
e
f
g
d
f
h
z
v
b
m
e
==== 快乐的分隔线 ====
a
b
c
d;e;f
g
d;f
h
z
v
b
m
e


结果和我们预期的一样,如果split里面的正则表达式写成如下格式:content.split(".|;|#|,"),结果又会是怎么样的呢?有兴趣的童鞋可以自己测试一下。


注意:

1、如果使用"."和"|"作为分隔符,需要转义,即写成split("\\.")或者是split("\\|"),这样才能和预期的结果一样;

因此,当我们的分隔符本身为转义字符的时候,必须要告诉系统,我是以“|”来分隔,这里的“|”并不是转义字符。


2、如果需要多个分隔符来处理某一个字符串,可以使用“|”作为连接符,例如:content.split("\\.|;|#|,")。

你可能感兴趣的:(Java)