如何从J2ME中的字符串计算数学表达式。
例如一个包含“2 * 4”的字符串。从我想要的字符串中计算数学表达式并得到结果为8(2 * 4)。我应该如何在J2ME中完成此操作。
在“Java™Platform Standard Ed.6”中有一个包,即“javax.script”用于从string中评估数学表达式。就像任何包或任何类都可用于J2ME来评估数学表达式字符串。
答案 0 :(得分:2)
如果需要处理嵌套表达式,只需编写自己的基于堆栈的解析器。
如果您不熟悉算法,则使用两个堆栈,一个用于保存运算符,另一个用于保存操作数。
对于基本情况,您将所有运算符和操作数解析为它们各自的堆栈,然后通过弹出两个操作数和一个运算符来计算,执行计算然后将结果存储回操作数堆栈。继续,直到操作符堆栈为空,操作数堆栈只有一个值(结果)。如果你的运算符用完了,你的堆栈上有多个结果,那么表达式就会出错。
要处理括号(包括嵌套括号),请包含左右parens的运算符。解析表达式时,如果遇到正确的paren,请立即开始计算表达式(弹出两个操作数和一个运算符,将结果放回操作数堆栈),直到遇到左边的paren。然后继续解析表达式。
答案 1 :(得分:1)
以下是用于评估J2ME中字符串的数学表达式的步骤