Rumah >Java >javaTutorial >Bagaimanakah Java Boleh Menghuraikan dan Menilai Ungkapan Matematik Diberikan sebagai Rentetan dengan Cekap?

Bagaimanakah Java Boleh Menghuraikan dan Menilai Ungkapan Matematik Diberikan sebagai Rentetan dengan Cekap?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 08:46:10417semak imbas

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

Menghuraikan Ungkapan Matematik sebagai Rentetan dalam Java

Diberi ungkapan matematik yang diwakili sebagai rentetan, seperti "5 4*(7-15) )", adakah mungkin untuk menilai dan mengembalikan hasil angka dalam Java? Selain itu, apakah kaedah yang menawarkan penghuraian ungkapan aritmetik yang paling cekap?

Penyelesaian:

Satu pendekatan untuk menilai ungkapan matematik sebagai rentetan adalah dengan memanfaatkan kelas BeanShell bsh.Interpreter . Kod berikut menunjukkan teknik ini:

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

Pendekatan ini melindungi daripada potensi risiko keselamatan dengan memastikan rentetan yang akan dinilai berasal daripada sumber yang boleh dipercayai.

Sebagai alternatif, yang lebih kompleks lagi selamat pilihan ialah menggunakan ANTLR (Alat Lain untuk Pengecaman Bahasa). ANTLR membentuk penjana penghurai berasaskan tatabahasa, yang mampu mengendalikan ungkapan matematik sebagai titik permulaan.

Atas ialah kandungan terperinci Bagaimanakah Java Boleh Menghuraikan dan Menilai Ungkapan Matematik Diberikan sebagai Rentetan dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn