Java计算器计算规则

标签 java calculator

所以我有一个带有输入数据的字符串,例如 String input = "5-3*7+8/6*2"我想使用数学计算规则来计算结果,例如 * 在 + 之前等等...是否有一种简单的方法可以对操作的单个部分进行排序以遵循这些规则? 我已经尝试用每个数字及其运算符创建子字符串,但我不知道如何从那里继续:

int i_tmp = -1;
for (int i=0; i<string.length(); i++) {
    //ia.getPositionAll() is true if the character i of the string is an operator
    if (ia.getPositionAll()[i]==true) { 
        substrings[i]=string.substring(i_tmp+1, i);
        i_tmp = i-1;
    }
}

现在我不知道如何继续......

子字符串如下:

substring[0] = 5
substring[1] = -3
substring[2] = *7
substring[3] = +8

substring[n] = etc.

谢谢大家,H。

最佳答案

你可以这样做:

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;

public class A {
  public static void main(String[] args) throws Exception {
    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("JavaScript");
    String input = "5-3*7+8/6*2";
    System.out.println(engine.eval(input));
    } 
}

关于Java计算器计算规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32679923/

相关文章:

ios - UI 在 Swift 计算器的弧度和度数模式之间切换

java - 黑莓:调用计算器并检索值?

python - 如何添加main发送参数进行计算(python postfix计算器)

c - C 语言 RPN 计算器

java - jce.jar 中 Cipher 类的 Maven 编译错误

java - 如何在 SWT Java 8 中使用 FXCanvas

java - JPA Native Query to tables from different schema in Oracle

java - NIO 的文件系统和路径与默认文件系统不一致

java.io.EOFException : Unexpected end of ZLIB input stream - reading from HTTP

android - 如何计算 EditText 框的总和?