A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© o火o把o 黑马帝   /  2011-9-28 11:43  /  2084 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

查阅split的 JDK API的时候 对第二个例子不是很懂,不知道为什么会在中间产生一个空字符串,大家帮忙看看。

split
public String[] split(String regex)根据给定正则表达式的匹配拆分此字符串。
该方法的作用就像是使用给定的表达式和限制参数 0 来调用两参数 split 方法。因此,所得数组中不包括结尾空字符串。

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

Regex 结果
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }

4 个回复

倒序浏览
黑马网友  发表于 2011-9-28 12:28:30
沙发
使用字符串“:“切割的结果是 { "boo", "and", "foo" } 这个应该没问题,
可是为什么使用字符串”o“结果是{ "b", "", ":and:f" } 呢?原因是当第一次遇到o时就切割了一个b,当第二次遇到o时由于第一次切割的位置o和本次切割的位置o相邻,两次切割的中间没有其他字符,所以就有了空字符串”“

评分

参与人数 1技术分 +2 收起 理由
wangfayin + 2 回答得很好!

查看全部评分

回复 使用道具 举报
黑马网友  发表于 2011-9-28 13:08:19
藤椅

回复 沙发 的帖子

哦,明白了~~
切割完第一个字符串"b"之后,第二个字符串变成了"o:and:foo","o"出现在了最左边,于是切了一个空字符串出来了~~
回复 使用道具 举报
黑马网友  发表于 2011-9-28 13:32:47
板凳

回复 藤椅 的帖子

最后两个o会切出一个“”空字符串么?
回复 使用道具 举报
黑马网友  发表于 2011-9-28 16:00:28
报纸

回复 沙发 的帖子

如果是这样,在最后切割的时候是不是还有一个空格啊?因为你在切割最后的o的时候,最后的“o”还是一个还是一个字符串,o也是在最左边啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马