我正在使用String.split()
一個分數計算器讓分裂的條款。輸入由空格分隔(1/2/1/2)的ArrayIndexOutOfBounds
String[] toReturn = new String[6];
result = isInputValid(expression);
toReturn = splitExpression(expression, placeToSplit[0]);
int indexOfUnderscore = toReturn[0].indexOf("_");
result = isInputValid(toReturn[0]);
if(toReturn[5] != null){
getOperator2(toReturn);
}
錯誤在if語句中。 toReturn[5]
是出界,因爲當兩個詞或更少進行了解答分裂的表達,它使用String.split()
它在空間分割,不會產生toReturn[5]
,甚至當我設定值toReturn[5]
。如果有一種方式來告訴我們,如果陣列中的一個字段存在,這可以解決這個問題,或者如果有辦法告訴多少項正在落實,我的程序適用於1/2 + 1/2 * 1/2
,但我還沒有想出如何以確定是否存在toReturn[5]
。
不能爲null,但可能是的String.Empty –
@FrancisP你」對了!我應該睡一覺:) – ppeterka
也刪除'String [] toReturn = new String [6]; '和更新'字符串[] toReturn = splitExpression(表達式,placeToSplit [0]);' – Jimmy