String a = "1,2,3,,,,,";
System.out.println(a.split(",").length);//3
1
ymmud 2019-12-09 16:42:19 +08:00
split(",", -1);
|
2
xtreme1 2019-12-09 16:43:25 +08:00 1
|
3
lihongjie0209 2019-12-09 16:43:52 +08:00
你确定是
这个空字符串“ ” 还是这个空字符串 “” |
4
Rwing 2019-12-09 16:49:26 +08:00
C# 欢迎您 :)
https://docs.microsoft.com/zh-cn/dotnet/api/system.string.split?view=netcore-3.0#System_String_Split_System_String___System_StringSplitOptions_ 参数 separator String[] 分隔此字符串中子字符串的字符串数组、不包含分隔符的空数组或 null。 options StringSplitOptions 要省略返回的数组中的空数组元素,则为 RemoveEmptyEntries ;要包含返回的数组中的空数组元素,则为 None。 |
5
conn4575 2019-12-09 16:54:19 +08:00 via Android
java 的 split 和其他语言的很不一样,各种反直觉,不知道设计者怎么想的
|
6
gaius 2019-12-09 17:06:40 +08:00
用 guava 的 splitter
|
7
qwerthhusn 2019-12-09 17:11:46 +08:00
从来不用这个,而且这个方法的参数是一个正则表达式,比如"1.2.3.4".split(".")是得不到结果的,必须要 split("\\.")
都是用 Guava 的 Splitter,可以明确指定按子串分割,按字符分割或者按正则分割。而且结果的话可以选择过滤或者不过滤空串 |
8
lxk11153 2019-12-09 17:16:15 +08:00
感觉这个方法源码不难懂,看下就行了
|
9
annielong 2019-12-09 18:00:01 +08:00
感觉挺好,不用再处理空字符,感觉用 split 的场景大多数是只要非空字符的
|
10
ragnaroks 2019-12-09 23:03:58 +08:00
没有 java 的反人类如何衬托出其他语言的优雅..
|
11
watzds 2019-12-09 23:46:38 +08:00 via Android
很奇怪的设计,好像后面的会丢掉,前面的会留着
,,1,2,3,, |