Java での数式を文字列として解析する
「5 4*(7-15」などの文字列として表現された数式が与えられたとします) )」をJavaで評価して数値結果を返すことは可能でしょうか?さらに、算術式の最も効率的な解析を提供するメソッドはどれですか?
解決策:
数式を文字列として評価する 1 つのアプローチは、BeanShell bsh.Interpreter クラスを利用することです。 。次のコードは、この手法を示しています。
Interpreter interpreter = new Interpreter(); interpreter.eval("result = 5+4*(7-15)"); System.out.println(interpreter.get("result"));
このアプローチは、評価される文字列が信頼できるソースからのものであることを保証することで、潜在的なセキュリティ リスクを防ぎます。
あるいは、より複雑だが安全なオプションは、ANTLR (言語認識のための別のツール) を使用することです。 ANTLR は文法ベースのパーサー ジェネレーターを構成し、出発点として数式を処理できます。
以上がJava は文字列として与えられた数式を効率的に解析して評価するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。