如何使用运算符转换字符串

Jac*_*ack -5 java

介绍

假设我有一行字符串"34/2 + 52*2 + 3.45"如何将这一行字符串转换并计算为一个双精度值?

NIN*_*OOP 5

一种方法是你可以使用ScriptEngine该类并使用它将其评估为javascript字符串eval().

您必须使用ScriptEngineManager#getEngineByName("js")来加载JS解释器.

请记住,这是一项代价高昂的操作.

更好的方法是编写一个使用Stack来评估表达式的方法.如果所有操作都是二进制操作,则可以使用堆栈通过首先将其转换为后缀表示法来查找中缀表达式的整体值.学习反向波兰表示法.

最后,您可以查看一些第三方库.