簡體   English   中英

字符串拆分方法行為

[英]String split method behavior

我不明白為什么以下輸出有意義。

空字符串上的字符串拆分方法返回長度為1的字符串數組

String[] split = "".split(",");
System.out.println(split.length);
返回長度為1的String數組

String[] split = "Java".split(",");
System.out.println(split.length);
返回長度為1的String數組

如何區分?

文檔

此方法返回的數組包含此字符串的每個子字符串,該子字符串由與給定表達式匹配的另一個子字符串終止,或者由字符串的結尾終止。

要回答你的問題,它會做預期的事情:返回的子字符串由輸入字符串的結尾終止(因為沒有,找不到)。 文件還說明:

如果表達式與輸入的任何部分都不匹配,那么結果數組只有一個元素,即該字符串。

請注意,這是第一個語句的結果。 如果找不到搜索字符串,則Java開發人員不會添加其他情況。

我也打了這個。 它返回的是字符串,但不包括拆分字符。 如果您不想獲得任何字符串,請使用StringTokenizer:

StringTokenizer st = new StringTokenizer(someString,',');
int numberOfSubstrings = st.countTokens();

它返回原始字符串(在這種情況下是空字符串),因為沒有,要分開。

它返回一個因為你正在測量split數組的大小,它包含一個元素:一個空字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM