2017-02-27 54 views
0

我最近在我的一个类中被赋予一个赋值,要求我们创建一个计算器,该计算器需要一个Infix表达式,将其转换为后缀表达式,然后评估。将中缀字符串转换为支持Java中mulidigit数字的后缀字符串

该问题源于实现多位数字。
我想过使用空格来表示多位数字,但我几乎肯定该方法不会帮助将Infix转换为Postfix,因为这只会帮助Postfix评估方法查看多位数字是什么,什么不是。

我只是需要帮助搞清楚如何做从中缀到后缀的转换。

+0

输入是怎样的?它是a + b还是a + b? – Sedrick

+0

我可能应该指定它是a + b – amingst

+0

搜索操作符索引的字符串。抓住操作员。然后在运算符上分割字符串。你最终将有三个部分。第一个号码,运营商和第二个号码。 – Sedrick

回答

0

这只是一个扫描问题。它没有任何特定的与infix-postfix转换有关的东西。一次扫描一个字符当您遇到一个数字时,请在扫描中包含该令牌的每个后续数字。当下一件事不是一个数字时停止。它将成为操作员,或者为了完整性,而使用空白。如果是空格,忽略它(但是在终止数字字符串之后),否则将其返回给解析器。

你不需要空格,但是如果你有它们,它将有助于扫描,而不是用户,而不是评估方法。评估方法已经知道数字是什么,就像扫描仪所说的那样。

+0

如果数字是浮点数,会发生什么? – Sedrick

+0

@SedrickJefferson我假设你的意思是'真实数字'。要实现这些功能,如果您停在小数点上,您将继续扫描是否存在以下数字,但在问题中没有提及实数。 – EJP

+0

在我的方法中,如果您在运营商上分拆,您将拥有所需的两个号码。 – Sedrick