首頁 >Java >java教程 >Java 如何有效地解析和計算以字串形式給出的數學表達式?

Java 如何有效地解析和計算以字串形式給出的數學表達式?

Linda Hamilton
Linda Hamilton原創
2024-11-29 08:46:10360瀏覽

How Can Java Efficiently Parse and Evaluate Mathematical Expressions Given as Strings?

在Java 中將數學表達式解析為字串

給定一個表示為字串的數學表達式,例如「5 4*(7-15 )”,是否可以在Java中計算並傳回數值結果?此外,什麼方法可以最有效地解析算術表達式?

解決方案:

將數學表達式計算為字串的一種方法是利用 BeanShell bsh.Interpreter 類別。以下程式碼示範了此技術:

Interpreter interpreter = new Interpreter();
interpreter.eval("result = 5+4*(7-15)");
System.out.println(interpreter.get("result"));

此方法透過確保要評估的字串來自可靠的來源來防範潛在的安全風險。

或者,更複雜但更安全選項是使用 ANTLR(另一種語言辨識工具)。 ANTLR 構成了一個基於語法的解析器產生器,能夠以處理數學表達式為起點。

以上是Java 如何有效地解析和計算以字串形式給出的數學表達式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn