如何评估J2ME中字符串的数学表达式。

例如一个包含“ 2*4”的字符串。从我想要的字符串中,我要评估数学表达式并将结果作为8(2*4)。我应该在J2me中完成此操作。

在“ Java™平台标准版”中,有一个软件包,即“ Javax.script”,用于评估字符串中的数学表达式。

有帮助吗?

解决方案 2

以下步骤用于评估J2ME中字符串的数学表达式

  1. 在字符串变量中读取表达式。此外,该表达式为infix形式。
  2. 将字符串变量中的表达式转换为后缀形式,并将其存储在另一个字符串变量中,即“ Postfix_str”。
  3. 使用堆栈以后缀形式(“ Postfix_str”数据中的值)评估表达式。

其他提示

如果您需要处理嵌套表达式,只需编写自己的基于堆栈的解析器即可。

如果您不熟悉该算法,则使用两个堆栈,一个用于持有操作员,另一个用于持有操作数。

对于基本情况,您将所有操作数和操作数放入各自的堆栈中,然后通过弹出两个操作数和一个操作员来评估,执行计算,然后将结果存储在操作数堆栈中。继续直到操作员堆栈为空,并且操作数堆栈只有一个值(结果)。如果您用完了运算符,并且堆栈上有一个以上的结果,则表达式存在错误。

要处理括号(包括嵌套括号),您包括左右parens的操作员。解析表达式时,如果您遇到右Paren,请立即开始评估表达式(弹出两个操作数和一个操作员,将结果放回操作数堆栈),直到遇到左Paren。然后恢复解析表达式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top