
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Parse a Mathematical Expression and Operators in Java
At first, we have set the mathematical expressions:
String one = "10+15*20-5/5"; String two = "3+5-6"; String three = "9+2*(6-3+7)";
To parse mathematical expression, use Nashorn JavaScript in Java i.e. scripting. Nashorn invoke dynamics feature, introduced in Java 7 to improve performance.
For scripting, use the ScriptEngineManager class for the engine:
ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("Nashorn");
Now for JavaScript code from string, use eval i.e. execute the script. Here, we are parsing mathematical expressions set above:
Object expResult1 = scriptEngine.eval(one); Object expResult2 = scriptEngine.eval(two); Object expResult3 = scriptEngine.eval(three);
Example
import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class Demo { public static void main(String[] args) throws Exception { String one = "10+15*20-5/5"; String two = "3+5-6"; String three = "9+2*(6-3+7)"; String four = "(10 % 3)*2+6"; String five = "3*3+3"; ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine scriptEngine = scriptEngineManager.getEngineByName("Nashorn"); Object expResult1 = scriptEngine.eval(one); Object expResult2 = scriptEngine.eval(two); Object expResult3 = scriptEngine.eval(three); Object expResult4 = scriptEngine.eval(four); Object expResult5 = scriptEngine.eval(five); System.out.println("Result of expression1 = " + expResult1); System.out.println("Result of expression2 = " + expResult2); System.out.println("Result of expression3 = " + expResult3); System.out.println("Result of expression4 = " + expResult4); System.out.println("Result of expression5 = " + expResult5); } }
Output
Result of expression1 = 309 Result of expression2 = 2 Result of expression3 = 29 Result of expression4 = 8 Result of expression5 = 12
Advertisements