Rumah >Java >javaTutorial >Bagaimanakah Java Boleh Menghuraikan dan Menilai Ungkapan Matematik Diberikan sebagai Rentetan dengan Cekap?
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!