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 = 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>

 例如:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM