黑马程序员技术交流社区
标题:
字符串切割问题,求大神帮忙解答
[打印本页]
作者:
Rorine
时间:
2015-3-24 23:37
标题:
字符串切割问题,求大神帮忙解答
以下两种情况如何解释。第一种:字符串全是相同的字符组成:
public class StringTest3 {
public static void main(String[] args) {
String str = "cccccc";
String[] arr = str.split("c");
System.out.println("arr.length="+arr.length);
System.out.print("arr=[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i] + "]");
} else
System.out.print(arr[i] + ",");
}
}
}
复制代码
输出结果如下:
1.png
(8.5 KB, 下载次数: 21)
下载附件
2015-3-24 23:29 上传
第二种情况:字符串中插入一个别的字符。
public class StringTest3 {
public static void main(String[] args) {
String str = "ccacccc";
String[] arr = str.split("c");
System.out.println("arr.length="+arr.length);
System.out.print("arr=[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.print(arr[i] + "]");
} else
System.out.print(arr[i] + ",");
}
}
}
复制代码
结果如下:
1.png
(7.96 KB, 下载次数: 32)
下载附件
2015-3-24 23:36 上传
求解释。
作者:
有丶时候
时间:
2015-3-25 00:24
split()就好像是一根甘蔗,把每节之间的那一点点舍去,只留下汁水多的枝干,然后组成一个数组。如果字符串都是相同的字符组成并且要切割的也是这个字符,那就相当这根甘蔗完全没有可吃的部分。
额。第二种情况,好像用甘蔗也不好解释前面为什么会有2个空的。{:3_49:}
跪求楼下的大神解释啊。
作者:
Hivan
时间:
2015-3-25 23:10
楼下来个大牛吧,看源码正则表达式搞不明白。
作者:
lzhuas
时间:
2015-3-25 23:24
本帖最后由 lzhuas 于 2015-3-25 23:26 编辑
第一种情况肯定什么都没有啦,你全部都是cccc,又根据c来切割返回子串还有什么?对,连空格都没有。第二种情况是因为你中间有个a,它在第三为,也就是2了,还是根据c来切割返回子串,前面两个啥都没有,就是空咯,所以[ , ,a],就是你要的东西啦
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2