0
我想創建一個方法,其中輸入是一個字符串,它是一個方程,並返回方程的結果。從字符串java中的表達式評估
像這樣的事情
String s;
s = "23*14*(15-4)";
System.out.println(ecuation(s));
我發現一個Java程序,其值的公式,但我不知道如何使它適應我的需要。任何人都可以幫忙
public class Evaluate {
public static void main(String[] args) {
Stack<String> ops = new Stack<String>();
Stack<Double> vals = new Stack<Double>();
while (!StdIn.isEmpty()) {
String s = StdIn.readString();
if (s.equals("(")) ;
else if (s.equals("+")) ops.push(s);
else if (s.equals("-")) ops.push(s);
else if (s.equals("*")) ops.push(s);
else if (s.equals("/")) ops.push(s);
else if (s.equals("sqrt")) ops.push(s);
else if (s.equals(")")) {
String op = ops.pop();
double v = vals.pop();
if (op.equals("+")) v = vals.pop() + v;
else if (op.equals("-")) v = vals.pop() - v;
else if (op.equals("*")) v = vals.pop() * v;
else if (op.equals("/")) v = vals.pop()/v;
else if (op.equals("sqrt")) v = Math.sqrt(v);
vals.push(v);
}
else vals.push(Double.parseDouble(s));
}
StdOut.println(vals.pop());
}
}
你需要什麼? –
爲了促進這一過程,如果您除了查看程序之外還嘗試了其他任何方法,請告知我們。你運行過嗎?你使用了什麼輸入?結果是什麼? – user1445967
我在這裏發佈的是一個類Evaluate的代碼,我想要的是一個獲取String作爲輸入並在Double值下返回結果的方法。 – CiucaS