Java 的 split 函数有问题啊

2017-09-11 14:07:47 +08:00
 guyeuro

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

结果

2 [, 51]

逗号没去掉

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

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

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

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

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

© 2021 V2EX