我试图编写一个通过相同方法的循环方法。应该循环的次数取决于用户输入的字符串的长度。例如,如果字符串是 1+2-3/4*3+2。该程序应该存储前 3 个数字和前 2 个运算符。然后执行操作顺序,对于这个,它将是 1+2-3 = 3-3。然后它应该从字符串中获取下一个运算符和下一个数字。这是我到目前为止的循环,它没有循环整个字符串并用新的数字和运算符更新它
public static double solveExpresion(String e) {
double answer = 0;
for (int i = 0; i < e.length(); i++) {
String operand1;
String operand2;
String operand3;
operand1 = getOperand(e);
o1 = Double.parseDouble(operand1);
operator1 = getOperator(expression);
operand2 = getOperand(expression);
o2 = Double.parseDouble(operand2);
operator2 = getOperator(expression);
operand3 = getOperand(expression);
o3 = Double.parseDouble(operand3);
answer = orderOfOperation(operator1, operator2);
/* operator2 = getOperator(expression);
operand3 = getOperand(expression);
o3 = Double.parseDouble(operand3);
answer = orderOfOperation(operator1, operator2);*/
}
return (answer);
}
注意:我不允许使用任何类型的数组。
这些是我的 getOperand 和 getOperator 方法
public static String getOperand(String s) {
s = s.trim();
String num = "";
while (s.length() > 0 && s.charAt(0) >= '0' && s.charAt(0) <= '9') {
num = num + s.charAt(0);
s = s.substring(1);
}
expression = s;
return (num);
}
public static char getOperator(String s) {
char r = 0;
if (s.length() > 0) {
r = s.charAt(0);
s = s.substring(1);
}
expression = s;
return (r);
}