String类的split方法以及StringTokenizer

  split方法可以根据指定的表达式regex将一个字符串分割成一个子字符串数组。

  它的参数有两种形式,也即:split(String regex)和split(String regex, int limit),其中split(String regex)实际上是通过调用split(String regex, int limit)来实现的,limit的值为0。那么,当limit>0和limit<0时都代表着什么呢?

  在jdk中时这样解释的:当limit>0子数组的长度最大为limit,也就是如果可能的话可以进行limit-1次分割,余下的作为一个子字符串(除非经过limit-1次已经把字符串分割完毕);

  limit<0时表示数组的长度没有限制;

  limit=0时字符串尾部的空字符串会舍去。

例如,字符串 "boo:and:foo" 使用这些参数可生成以下结果:

RegexLimit结果
: 2 { "boo", "and:foo" }
: 5 { "boo", "and", "foo" }
: -2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
o -2 { "b", "", ":and:f", "", "" }
o 0 { "b", "", ":and:f" }

StringTokenizer类是出于兼容性的原因而被保留的遗留类,因此,我们应尽量使用String类的split方法。

posted @ 2013-08-11 13:50  华电岳黎明  阅读(1808)  评论(0编辑  收藏  举报