在Java中将字符串转换为运算符(+ * /-)

我正在使用Stack类来计算涉及整数的简单算术表达式,例如1 + 2 *

3。您的程序将按照给定的顺序执行操作,而与运算符的优先级无关。因此,应计算表达式1 + 2 * 3(1 + 2) 3 = 9,而不是1+(2 * 3)=

7。

如果我得到的输入为1 + 2 * 3,我知道如何将字符串1,2,3转换为Integer。但是我不知道如何将+,*从字符串类型转换为运算符。

我的代码逻辑是:例如:给定字符串2 +(3 * 5),因此将首先操作3 * 5,然后在3 * 5的结果中执行+2。

回答:

可能最好的方法是equals,但是最好忽略空格:

我不太确定如何分割字符串,但是例如,如果您有一个char op和两个整数ab

String str = op.replace(" ", "");

if(str.equals("*")){

retVal = a*b;

} else if(str.equals("+")){

retVal = a+b;

}//etc

以上是 在Java中将字符串转换为运算符(+ * /-) 的全部内容, 来源链接: utcz.com/qa/434213.html

回到顶部