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