繁体   English   中英

string.split如何仅使用定界符评估字符串?

[英]How does string.split evaluate a string with only delimiters?

例如

String splits[] = ("||").split("[|]") 

System.out.println(splits.length)返回0。而我希望它返回2。解决此问题的最佳方法是什么?

split()的默认操作是丢弃结尾的空字符串。 由于每个结果字符串均为空,因此不会返回任何字符串。

更准确地说,在第二个参数设置为0的情况下,调用split(String)与调用split(String, int)相同。

0表示(强调我的):

...该模式将被尽可能多地应用,该数组可以具有任意长度,并且尾随的空字符串将被丢弃。

如果您想保留结尾的空字符串(并且不想限制元素的数量),请传入一个负值(我建议-1):

String splits[] = "||".split("\\|", -1);

在以定界符结尾的字符串上调用split时,将仅舍弃结束的定界符。

例如,所有这些都是相同的:

"X|Y|Z|||".split([|]).length
"X|Y|Z||".split([|]).length
"X|Y|Z|".split([|]).length
"X|Y|Z".split([|]).length

_注意,您输入| 在支架上,由于| 是正则表达式中的元字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM