簡體   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