小唯快跑啊
2019-05-30 16:09:07
Java中是否有val()函數(shù)?我有一個(gè)字符串,如下所示:String str = "4*5";現(xiàn)在我要得到的結(jié)果是20通過使用字符串。我知道在其他語言中eval()函數(shù)就能做到這一點(diǎn)。我如何在Java中做到這一點(diǎn)?
4 回答

BIG陽
TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊
ScriptEngine
ScriptEngineManager manager = new ScriptEngineManager();ScriptEngine engine = manager.getEngineByName("js");Object result = engine.eval("4*5");

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
類的Java源代碼中將表達(dá)式包裝為 eval
方法,將其發(fā)送到Java編譯器,然后加載生成的已編譯類。 使用一些可以從Java調(diào)用的腳本語言作為表達(dá)式計(jì)算器??赡苄园↗avascript,BeanShell,等等。 從頭開始編寫自己的表達(dá)式計(jì)算器。

慕田峪7331174
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超13個(gè)贊
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();
添加回答
舉報(bào)
0/150
提交
取消