首页 > 编程语言 > 详细

js和java将字符串转成算术表达式

时间:2017-11-17 14:14:56      阅读:282      评论:0      收藏:0      [点我收藏+]

====>java

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

public static void test1() throws ScriptException {
  String str = "(a >= 0 && a <= 5)";
  ScriptEngineManager manager = new ScriptEngineManager();
  ScriptEngine engine = manager.getEngineByName("js");
  engine.put("a", 6);
  Object result = engine.eval(str);
  System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
}
public static void test2() throws ScriptException {
  String str = "43*(2 + 1.4)+2*32/(3-2.1)";
  ScriptEngineManager manager = new ScriptEngineManager();
  ScriptEngine engine = manager.getEngineByName("js");
  Object result = engine.eval(str);
  System.out.println("结果类型:" + result.getClass().getName() + ",计算结果:" + result);
}


public static void main(String[] args) {
  try {
    test1();
    test2();
  } catch (ScriptException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }
}

 

jdk1.6中可以直接这样用

 

=========>js

<input type="text" id="text1" value="4" />
<input type="text" id="text2" value="9" />
<input type="text" id="text3" value="5" />
<input type="text" id="text4" value="6" />
<input type="text" id="text5" value="2" />
<input type="button" value="计算" onclick="func();" />
<script type="text/javascript">
function func() {
    var str = "(A+B+C)*D/E";
    var A = parseFloat(document.getElementById("text1").value);
    var B = parseFloat(document.getElementById("text2").value);
    var C = parseFloat(document.getElementById("text3").value);
    var D = parseFloat(document.getElementById("text4").value);
    var E = parseFloat(document.getElementById("text5").value);
    var num = eval(str);
    alert(num);   
}
</script>

 例如:

技术分享

技术分享

 

js和java将字符串转成算术表达式

原文:http://www.cnblogs.com/niannianbuwang/p/7851083.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!