字符串转公式

  1. https://zhuyuangping.iteye.com/blog/1734045
  2.  
  3. package test;  
  4.   
  5. import java.io.*;  
  6. import javax.script.ScriptEngine;  
  7. import javax.script.ScriptEngineManager;  
  8. public class Test2  
  9. {  
  10.         public static void main(String[] args) throws Exception  
  11.         {  
  12.                 String expr = "x+y*10";  
  13.                 ScriptEngineManager manager = new ScriptEngineManager();  
  14.                 ScriptEngine engine = manager.getEngineByName("js");  
  15.                 engine.put("x", 10);  
  16.                 engine.put("y", 10);  
  17.                 Object result = engine.eval(expr);  
  18.                System.out.println(result);  
  19.         }  
  20. }  

https://blog.csdn.net/guoqiankun01/article/details/79085525

  1. public class runString {  
  2.   
  3.     static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");  
  4.   
  5.     /** 
  6.      * @param args 
  7.      */  
  8.     public static void main(String[] args) {  
  9.         String strs = "1+1*2+(10-(2*(5-3)*(2-1))-4)+10/(5-0)";  
  10.         try {  
  11.             System.out.println(jse.eval(strs));  
  12.         } catch (Exception t) {  
  13.         }  
  14.     }  
  15. }  

注意:如果公式中存在变量作为运算的元素的话,可以借鉴使用replaceAll()方法将相应的变量替换成实际的数值。如果是多个变量可以利用循环遍历的方式来解决。 
例子:jse.eval(“1+b”.replaceAll(“b”, b.toString()));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值