精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-05
String[] strs = "".split(","); 结果是strs.length=1,strs[0]="" String[] strs = ",".split(","); 结果是strs.length=0 String[] strs = ",1,".split(","); 结果是strs.length=2,strs[0]="",strs[1]="1" String.split使用起来潜规则比较多,即使自己清楚,别人也未必一眼就看明白。为了不引起误会,建议使用StringUtils.split来替代,它对空字符串""会进行过滤。 String[] strs = StringUtils.split(",1,,2,", ","); 结果是strs.length=2,strs[0]="1",strs[1]="2" 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-07
这个不能叫替代
只能说2个类库split的定义都不一样 |
|
返回顶楼 | |
发表时间:2010-11-07
确实在以前开发中遇到过String的split方法出现过很多疑问,但我们也可以自己定义一些自己熟悉的方法,这样比较好吧。
|
|
返回顶楼 | |
发表时间:2010-11-07
这种只能视情况去选择,而不能说那个有问题,那个没问题
他们所要去实现的效果是不一样的,jdk中定义的是最基本的东西,如果需要过滤掉为空的内容,是要自己去实现的 |
|
返回顶楼 | |
发表时间:2010-11-08
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。 例如,字符串 "boo:and:foo" 使用这些表达式可生成以下结果: Regex 结果 : { "boo", "and", "foo" } o { "b", "", ":and:f" } 参数: regex - 定界正则表达式 返回: 字符串数组,它是根据给定正则表达式的匹配拆分此字符串确定的 抛出: PatternSyntaxException - 如果正则表达式的语法无效 JDK API 中讲的很详细的 |
|
返回顶楼 | |
发表时间:2010-11-08
那楼上用API的说明解释一下String[] strs = "".split(",")和String[] strs = ",".split(",")这两种情况的结果。
|
|
返回顶楼 | |
发表时间:2010-11-08
解决问题的方式可以不同,最主要的是得到自己满意的结果就OK
|
|
返回顶楼 | |
发表时间:2010-11-08
还是按照具体需求来用使用具体的方法..
|
|
返回顶楼 | |
发表时间:2010-11-08
经常用StringUTils类,希望大家关注下这个类,超好用
http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/StringUtils.html 每个方法都有例子,非常的清晰 |
|
返回顶楼 | |
发表时间:2010-11-08
String.split的行为和通常的理解不太一样,有点诡异 :D
|
|
返回顶楼 | |