1. split
split可以把串分解为片语(token)。此动作,俗称“打散”。
需要注意的是,其中的参数并不是“分隔串”,而是一个“正则表达式”。
String s = "xyz,abc,123";
String[] ss = s.split(",");
这种用法是正确的。因为,逗号并不是正则表达式的关键字。如果想把“12+25”分解为“12”和“25”,就不能像下面这样写了:
String s = "12+25";
String[] ss = s.split("+");
这是因为“加号”在正则表达式中有特殊的含义。如果希望作为分隔符的就是“+”,则可以采用转义的办法来表达。
String[] ss = s.split("[+]");
或者
String[] ss = s.split("\\+");
其中,有些奇怪的是第二种写法。之所以写两个反斜线,是因为,反斜线也是java串中的转义符号,所以此处是经过了两次转义。第一次是java转义,第二次是正则表达式的转义。
2. java.util.StringTokenizer 有的时候,使用StringTokenizer更容易对串进行分解工作。这是类可根据我们提供的分隔符号把一个串,分解为多个token,分解的时候,也可以包含分隔符本身,也可以不包含。 String s = "23+45-(3+5*2)"; StringTokenizer st = new StringTokenizer(s,"+-*/()",true); while(st.hasMoreTokens()){ System.out.println(st.nextToken()); } 另外,countTokens()可以返回tokens的数目。