[英]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.