js和java将字符串转成算术表达式====>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 = EngineByName("js");
engine.put("a", 6);
Object result = engine.eval(str);
System.out.println("结果类型:" + Class().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 = EngineByName("js");
Object result = engine.eval(str);
System.out.println("结果类型:" + Class().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";js以6结尾的数字表达式
var A = ElementById("text1").value);
var B = ElementById("text2").value);
var C = ElementById("text3").value);
var D = ElementById("text4").value);
var E = ElementById("text5").value);
var num = eval(str);
alert(num);
}
</script>
例如:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论