亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java中是否有val()函數?

Java中是否有val()函數?

Java中是否有val()函數?我有一個字符串,如下所示:String str = "4*5";現在我要得到的結果是20通過使用字符串。我知道在其他語言中eval()函數就能做到這一點。我如何在Java中做到這一點?
查看完整描述

4 回答

?
BIG陽

TA貢獻1859條經驗 獲得超6個贊

您可以使用ScriptEngine類并將其計算為Javascript字符串。

ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("js");Object result = engine.eval("4*5");

也許有更好的方法,但這個方法有效。


查看完整回答
反對 回復 2019-05-30
?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

沒有標準的Java類或方法可以做您想做的事情。你的選擇包括:

  • 選擇并使用一些第三方表達式評估庫。例如果凍或者列出的六家圖書館中的任何一家這里.

  • 類的Java源代碼中將表達式包裝為eval方法,將其發送到Java編譯器,然后加載生成的已編譯類。

  • 使用一些可以從Java調用的腳本語言作為表達式計算器??赡苄园↗avascript,BeanShell,等等。

  • 從頭開始編寫自己的表達式計算器。

第一種方法可能是最簡單的。如果您從不受信任的用戶那里得到要評估的表達式,第二種和第三種方法是潛在的安全風險。(考慮一下代碼注入。)


查看完整回答
反對 回復 2019-05-30
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

我可以建議你用Exp4j。從下面的示例代碼中可以看出,這很容易理解:

Expression e = new ExpressionBuilder("3 * sin(y) - 2 / (x - 2)")
    .variables("x", "y")
    .build()
    .setVariable("x", 2.3)
    .setVariable("y", 3.14);double result = e.evaluate();


查看完整回答
反對 回復 2019-05-30
  • 4 回答
  • 0 關注
  • 2845 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號