我有一个家庭作业,我应该以这种格式读取字符串 [1+2/3+4] 然后我必须存储 5 个变量,即前 3 个数字和前 2 个运算符。我的问题是如何遍历字符串并将值存储到不同的变量中。这就是我到目前为止所拥有的。
公共类表达式评估{
static String expression;
static double o1;
static double o2;
private static double o3;
static char operator1;
private static char operator2;
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) {
s = s.trim();
char r = 0;
int i = 0;
while (s.length() > 0 && s.charAt(0) >= '0' && s.charAt(0) <= '9') {
r = s.charAt(i);
s = s.substring(i+1);
i++;
}
return (r);
}
public static double add(double a, double b) {
return (a + b);
}
public static double sub(double a, double b) {
return (a - b);
}
public static double mult(double a, double b) {
return (a * b);
}
public static double div(double a, double b) {
return (a / b);
}
public static double solveExpresion(String e) {
double answer = 0;
for(int i = 0;i< e.length();i++){
String operand1;
String operand2;
operand1 = getOperand(e);
o1 = Double.parseDouble(operand1);
operand2 = getOperand(expression);
o2 = Double.parseDouble(operand2);
operator1 = getOperator(expression);
}
return (answer);
}
}
这是我的主要课程
import java.util.Scanner;
public class TestCalc {
public static void main(String args[]) {
Scanner kb = new Scanner(System.in);
String equation;
System.out.println("Please enter your equation: ");
equation = kb.nextLine();
double newNum = ExpresionEvaluation.solveExpresion(equation);
//System.out.println(newNum);
System.out.println(ExpresionEvaluation.o1);
System.out.println(ExpresionEvaluation.operator1);
System.out.println(ExpresionEvaluation.o2);
//System.out.println(ExpresionEvaluation.expression);
}
}
每次我运行它时,它都会说我有一个空字符串。