我正在使用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

10-06 13:08