Ach*_*les 1 java data-structures
我在java工作,我必须评估作为String给出的数学表达式.例如:
"5*8-9/7+5-8"
会导致
35.71.
我试过"java eval库",但没有找到帮助.请告诉我如何解决这类问题.我可以使用数据结构堆栈或队列来评估这些表达式,但我必须考虑运算符优先级,因为乘法是在减法,加法之前完成的.哪种数据结构最适合这种情况,最好记住时间复杂性.
从Java 6开始,您可以使用内置的Javascript引擎.
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine eng = sem.getEngineByName("JavaScript");
String str = "5*8-9/7+5-8";
System.out.println(eng.eval(str));
Run Code Online (Sandbox Code Playgroud)
注意:该eval()方法抛出a ScriptException,您还需要以下导入.
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3044 次 |
| 最近记录: |