《文本计算器》数学字符串转换公式进行运算并得到值
来源:互联网 发布:矩阵的秩代表什么 编辑:程序博客网 时间:2024/05/21 11:25
字符串转换公式运算
在某些特殊情况下,需要进行前台运算,然后具体运算的参数和公式是后台定义的,我们这个时候就需要把后台的公式转换成可以计算的公式。计算并输出结果。比如:(a+5*b)+( 2 * 3 )+1-(2*x)+6
方法一
利用javax自带的ScriptEngine这个类来计算,需要jdk1.6一上。优点:操作简单。缺点:效率底,jdk有要求,如果在安卓中是没有ScriptEngine,ScriptEngineManager个类。需要引进好几个包,大概1MB
这样:
String str = "(x >= 0 && x <= 5)"; ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); engine.put("x", 4); Object result = engine.eval(str); System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
或者这样
String str = "3+(2+1)-1+3/1+2*(2+4*(1+1))+2+1-(3*1-1)"; ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("js"); Object result = engine.eval(str); System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
一般情况直接COPY上面就可以了。
方法二,没有javax包的时候使用,如安卓中…
优点:速度快。缺点:功能简单,一般运算满足
calc.java 点击这里下载
使用这样:
String Str = "(a+5*b)+( 2 * 3 )+1-(2*x)+6";Replace r = new Replace(Str);r.put("a", 3);r.put("b", "2");r.put("x", 4);System.out.println("替换变量前:" + Str);System.out.println("替换变量后:" + r.toString());System.out.println("计算结果:" + 计算器.eval(r.toString()));//-------------------输出结果:-------------------------////替换变量前:(a+5*b)+( 2 * 3 )+1-(2*x)+6//替换变量后:(3+5*2)+( 2 * 3 )+1-(2*4)+6//计算结果:18
操作简单。
calc.java 点击这里下载
0 0
- 《文本计算器》数学字符串转换公式进行运算并得到值
- 用原生js来将prompt()方法得到的字符串,转换为数字,并进行运算呢?
- 通过给出的求值运算公式字符串得到其结果值
- C#中字符串转换为计算公式,并进行计算的方法(自定义公式的计算)
- C#中字符串转换为计算公式,并进行计算的方法(自定义公式的计算)
- asp.net中将一个随机的运算公式字符串转变为运算公式进行运算
- C#中另类自定义公式计算 字符串转换为计算公式,并得出计算结果
- 给定任意的一个含数学运算符的字符串,求这个字符串转换成数学表达式的值。
- linux shell进行数学运算
- 通过shell进行数学运算
- 使用shell进行数学运算
- shell scripts_0 进行数学运算
- 关于数学字符串公式的计算
- 字符串进行运算
- lua 字符串数学表达式运算
- java执行字符串中的运算公式
- java执行字符串中的运算公式
- java执行字符串中的运算公式
- Linux设备驱动工程师之路——内核链表的使用
- 如何拼接、标注图片
- jquery input动态绑定onchange事件
- 动态规划
- HDU-3652-数位dp
- 《文本计算器》数学字符串转换公式进行运算并得到值
- Linux下系统调用编程socket(2)
- 解决异常:Can't create handler inside thread that has not called Looper.prepare()
- Android 入门之Intent应用
- php 简单的注册和登录,带数据库。适合新手学习。
- 解压tar.gz文件报错gzip: stdin: not in gzip format解决方法或者Error is not recoverable: exiting now
- C99的各类头文件
- H5适配逼疯人!这个方案或许能帮到你
- 第三章 数组与字符串