我想解决关于计算Java中String的数值的家庭作业,如"-3.1+0.12*0.0023-34.1/2.1"
我有限制只使用数组和字符串而不使用递归函数(作为一年级学生)
我尝试了什么?我试图通过char解析字符串char来解决它。
我只为+和 - 尝试这种方法:
public static double CalcPlusMinus(String s) {
double A[] = new double[10000];
if ((s.charAt(0) != '+') && (s.charAt(0) != '-'))
s = '+' + s;
int i = 0, j = 0;
while (i < s.length()) {
int flag = 1;
if (s.charAt(i) == '-')
flag = -1;
i++;
double m = 0;
int end = 0;
if ((s.charAt(i) >= '0') && (s.charAt(i) <= '9'))
while ((s.charAt(i) >= '0') && (s.charAt(i) <= '9')) {
m = m * 10 + (s.charAt(i) - '0');
i++;
if (i >= s.length()) {
end = 1;
break;
}
}
if (end == 0)
if (s.charAt(i) == '.') {
i++;
double x = 10;
while ((s.charAt(i) >= '0') && (s.charAt(i) <= '9')) {
m = m + ((s.charAt(i) - '0') / x);
x *= 10;
i++;
if (i >= s.length())
break;
}
}
A[j++] = m * flag;
}
A[A.length - 1] = j;
for (int m = (int) A[A.length - 1] - 1; m > 0; m--) {
A[m - 1] = A[m] + A[m - 1];
}
return A[0];
}
我想添加*和/到这个方法
但我的主要问题是:如何在我的代码中控制很多if-then-else。
有没有正式的方法来控制代码中的很多ifs?我知道流程图,但流程图也变得非常大!
提前致谢
您应该有3个单独的步骤: