Java 的 split 函数有问题啊

2017 年 9 月 11 日
 guyeuro

String x = ",51,"; String[] y = x.split(","); System.out.println(y.length); System.out.println(Arrays.asList(y));

结果

2 [, 51]

逗号没去掉

2721 次点击
所在节点    问与答
9 条回复
Luckyray
2017 年 9 月 11 日
结果里的逗号,是用来分割 List 链表里的元素的...
比如[,,,]相当于有一个 List,长度为 4,每一个元素的值都是""空字符
Finest
2017 年 9 月 11 日
逗号去掉了。。。
[ , 51] 这里表示有两个元素,第一个是空串,第二个是 51
Duolingo
2017 年 9 月 11 日
你可以看下 println(List)的方法里做了啥。。。
66beta
2017 年 9 月 11 日
@Luckyray 那楼主的结果 length 为何是 2 ?
66beta
2017 年 9 月 11 日
感觉就是 java 故意的吧,最后没了,就忽略最后一个,
66beta
2017 年 9 月 11 日
大家都是 ECMA,Javascript 如楼主期望的
let a = ',6,'
let b = a.split(',')
(3) ["", "6", ""]
Finest
2017 年 9 月 11 日
Java 的 String.split 确实是把最后一个空串去掉的。
Luckyray
2017 年 9 月 11 日
@66beta split 默认把最后的空串去掉,可以加一个参数 limit 决定返回几个结果
suikator
2017 年 9 月 11 日
有重载方法 第二个参赛填负一

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/389730

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX