【发布时间】:2016-08-12 11:10:41
【问题描述】:
我正在制作一个 Android 应用程序,该应用程序最终将用作游戏的掷骰子。我有一个可以将方程式输入字符串的键盘。然后我将字符串解析为一个数组并需要计算方程。我正在使用 for 循环来遍历数组,但我不确定当乘法出现时如何处理。
举个例子:
String theEquation = "2 + 3 * 6";
String[] result = theEquation.split("\\s+");
所以我现在有一个包含 2、+、3、*、6 的数组。我将如何将其转化为 20 的答案?
我最初使用 for 循环来将整个数组相加。当它只是添加时,它工作得很好。但是当我加上乘法时,事情变得很奇怪。
【问题讨论】:
-
你需要一个方程解析器。
-
这是一个广泛的话题。您需要指定要支持哪种操作,允许哪些输入值等。出于好奇:为什么骰子游戏需要这样的东西?
-
适用于龙与地下城。我用它代替各种不同的骰子。例如,我需要为我经常做的一件事掷 5-6 面骰子。我只有 1 个实际的 6 面模具。打开这个应用程序并点击“5 * d6”并让它计算滚动要容易得多。
-
您可以检查您的结果数组是否包含 * 以首先进行操作。然后从数组中删除 * 之前和之后的元素并继续操作。