一、用正则表达式分割字符串:
1、public String[] split(String regex)
字符串对象调用该方法时,使用参数指定的正则表达式regex作为分割标记分解出其中的单词,将单词存放在字符串数组中。
例如:
对于字符串:
s = "1ab c 123 def 45 6";
如果分解出全部数字字符组成的单词,必须用非数字字符串作为分割标记,因此使用正则表达式:
regex = "\\D+";
代码如下:
String s = "1ab c 123 def 45 6";
String regex = "\\D+";
String[] words = s.split(regex);
System.out.println(Arrays.toString(words));
结果为:
2、需要注意一个问题,如果将上面的字符串开头的数字1去掉,即
s = "ab c 123 def 45 6";
则输出结果时会有一个空串,即:
二、StringTokenizer类(字符串分析器)分解字符串
1、该类的对象不使用正则表达式做分割标记,有如下两个构造方法:
1)StringTokenizer(String s)
为字符串s构造一个分析器。使用默认的分割标记,即空格符(若干个空格当作一个空格)、换行符、回车符、Tab符等。
2)StringTokenizer(String s, String delim)
为字符串s构造一个分析器。使用参数dilim中的字符的任意组合作为分割标记。
需要注意,分割标记的任意组合仍是分割标记。
2、需要使用的方法
1)nextToken()方法
使用该方法逐个获取字符串中的单词,每当调用该方法时,都将在字符串中获得下一个单词,且分析器中计数的变量值自动减一,该计数变量初始值等于字符串单词数目。
2)hasMoreTokens()方法
通常用while循环组个获取单词,只要计数变量大于0,该方法就返回true,否则返回false。
3)countTokens()方法
得到技术变量的值。
例如:
StringTokenizer st = new StringTokenizer("we , love , java", " ,"); //使用逗号和空格为分割标记
System.out.println(st.countTokens());
while(st.hasMoreTokens()) {
System.out.println(st.nextToken());
}
结果: