首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java计算器计算规则

Java计算器计算规则
EN

Stack Overflow用户
提问于 2015-09-20 21:29:11
回答 1查看 624关注 0票数 0

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

代码语言:javascript
复制
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;
    }
}

现在我不知道如何从这一点开始...

子字符串如下:

代码语言:javascript
复制
substring[0] = 5
substring[1] = -3
substring[2] = *7
substring[3] = +8

substring[n] = etc.

谢谢你们,H。

EN

回答 1

Stack Overflow用户

发布于 2015-09-20 21:39:16

你可以这样做:

代码语言:javascript
复制
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));
    } 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32679923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档