我正在使用String.split()
进行分数计算器运算,以分解术语。输入之间用空格隔开(1/2 / 1/2)
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]
是否存在。 最佳答案
正确地:
result = isInputValid(expression);
String[] toReturn = splitExpression(expression, placeToSplit[0]);
int indexOfUnderscore = toReturn[0].indexOf("_");
result = isInputValid(toReturn[0]);
if(toReturn.length>5 && !"".equals(toReturn[5]) ){
getOperator2(toReturn);
}
toReturn.length>5
部分验证数组本身至少有6个项目长。然后,您可以检查该元素是否为empty
。