String parts[] = formattedString.split("\\:");
String partA = parts[0];
String partB = parts[1];
我試圖在「:」符號之前和之後拆分一個字符串。
例如,「之前:之後」的作品,但在「之前:」之後沒有任何內容像「之前:」給我一個例外。我試圖在parts[1]
中檢查null
,但它仍然會拋出異常。如何解決在java中的字符串拆分索引超出界限的異常?
String parts[] = formattedString.split("\\:");
String partA = parts[0];
String partB = parts[1];
我試圖在「:」符號之前和之後拆分一個字符串。
例如,「之前:之後」的作品,但在「之前:」之後沒有任何內容像「之前:」給我一個例外。我試圖在parts[1]
中檢查null
,但它仍然會拋出異常。如何解決在java中的字符串拆分索引超出界限的異常?
您需要檢查數組的長度,以確定在引用索引1之前是否存在索引1處的任何東西。
if(parts.length > 1) {
//do something with it
}
拆分方法給出的數組的長度由可拆分元素的數量決定。
這意味着,如果你沒有第二個元素,數組的長度將是1,而不是2
您應檢查數組的長度,以確定是否有第二個元素。
String parts[] = formattedString.split("\\:");
String partA = parts[0];
String partB = parts[1];
想要訪問索引0和1的上述代碼,請首先檢查數組部分是否具有這些索引。在訪問這些索引之前,請檢查數組的長度。
檢查結果數組的長度。 –
這裏的問題與正則表達式無關。這是你不理解數組。我也打賭你沒有想過像「Beginning:Middle:End」這樣的字符串。 – jpmc26
如果你知道有一種可能性,不要認爲索引1處會有東西。 – ChiefTwoPencils