String 字符串变量返回为double

String 字符串变量返回为double,string,parsing,double,stringtokenizer,String,Parsing,Double,Stringtokenizer,创建一个名为parseEqn的方法,该方法将接收1个字符串变量并返回传递给它的表达式的双精度值 parseEqn("123+23") → 146.0 parseEqn("3+5") → 8.0 parseEqn("3-5") → -2.0 这就是问题所在,我想我需要做的是首先使用字符串标记器将字符串拆分,然后将标记转换为双精度,然后根据运算符进行加减…但我不确定 这就是我目前所拥有的 public double parseEqn(String str) { StringTokenizer s

创建一个名为parseEqn的方法,该方法将接收1个字符串变量并返回传递给它的表达式的双精度值

parseEqn("123+23") → 146.0
parseEqn("3+5") → 8.0
parseEqn("3-5") → -2.0
这就是问题所在,我想我需要做的是首先使用字符串标记器将字符串拆分,然后将标记转换为双精度,然后根据运算符进行加减…但我不确定

这就是我目前所拥有的

public double parseEqn(String str) {

StringTokenizer st = new StringTokenizer(str, "+-", true);


String first= st.nextToken();
String op= st.nextToken();
String second= st.nextToken();

 double num1 = Double.parseDouble(first);

  double num2 = Double.parseDouble(second);

if (op.equals("+")){
 return num1+num2;
} 
else (op.equals("-")){
 return num1-num2;
}

但是我不知道……

编写表达式解析器不是一项简单的任务。解析任意中缀表达式的标准算法是。其思想是遍历每个标记,并从输入中构建一个反向波兰符号(RPN)表达式。RPN表达式本质上是一个基于堆栈的操作列表,计算机很容易使用它(并且很容易编写代码进行计算)