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