Java me J2ME中如何从字符串计算数学表达式

Java me J2ME中如何从字符串计算数学表达式,java-me,mathematical-expressions,Java Me,Mathematical Expressions,如何从J2ME中的字符串计算数学表达式 例如,一个包含“2*4”的字符串。从该字符串中,我要计算数学表达式并得到结果为8(2*4)。我应该如何在J2ME中实现这一点 在“Java”中™ 平台标准版6“有一个包,即“javax.script”,用于从字符串计算数学表达式。就像J2ME可以使用任何包或任何类从字符串计算数学表达式一样。如果需要处理嵌套表达式,只需编写自己的基于堆栈的解析器 如果不熟悉该算法,可以使用两个堆栈,一个用于保存运算符,另一个用于保存操作数 对于基本情况,将所有运算符和操作数

如何从J2ME中的字符串计算数学表达式

例如,一个包含“2*4”的字符串。从该字符串中,我要计算数学表达式并得到结果为8(2*4)。我应该如何在J2ME中实现这一点


在“Java”中™ 平台标准版6“有一个包,即“javax.script”,用于从字符串计算数学表达式。就像J2ME可以使用任何包或任何类从字符串计算数学表达式一样。

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

如果不熟悉该算法,可以使用两个堆栈,一个用于保存运算符,另一个用于保存操作数

对于基本情况,将所有运算符和操作数解析到各自的堆栈中,然后通过弹出两个操作数和一个运算符进行计算,执行计算,然后将结果存储回操作数堆栈。继续,直到运算符堆栈为空且操作数堆栈只有一个值(结果)。如果运算符用尽,并且堆栈上有多个结果,则表达式中存在错误


要处理圆括号(包括嵌套圆括号),您需要包含左括号和右括号的运算符。解析表达式时,如果遇到右参数,请立即开始计算表达式(弹出两个操作数和一个运算符,将结果放回操作数堆栈),直到遇到左参数。然后继续解析表达式。

以下步骤用于从J2ME中的字符串计算数学表达式

  • 读取字符串变量中的表达式。此处表达式为中缀形式
  • 将字符串变量中的表达式转换为后缀形式,并将其存储在另一个字符串变量“postfix_str”中
  • 使用堆栈计算后缀形式的表达式(“postfix_str”数据中的值)

  • 感谢您提供的信息。我认为基于堆栈的解析器意味着将字符串中的表达式转换为后缀,然后进行求值?这是正确的还是其他方式?请指导我解决这个问题。我是J2ME的新手(我是一名新手)嗨,Fredrick Pennachi,感谢您提供的相关信息。我认为基于堆栈的解析器意味着将字符串中的表达式转换为后缀,然后进行计算?这是正确的还是其他方式?请指导我解决这个问题。我是J2ME的新开发人员(我是一个新手),我刚刚更新了描述解析中缀表达式的答案。谢谢,这对我有效,但它只适用于一个字符长度的操作数,我是说3、5、9等,而不是45、34、81等。你能告诉我一些关于它的情况吗。谢谢,这对我有效,但它只适用于一个字符长度的操作数,我是说3、5、9等,而不是45、34、81等。你能告诉我一些关于它的情况吗。