Java Program To Check Whether Expression Is Valid or Not? String Expression

  In this section, we will learn to create a java program to check whether the expression is valid or not in string format and return the boolean value. If the string is valid then return true otherwise false.

Java Parse Mathematical Expression In String

Let’s create a basic example of a mathematical expression as shown below:

String validExpr = “(5+8)*((5-2)+(8-1))”;
String invalidExpr = “(5+*8)*((5-2)+(8-1)”;

To parse the mathematical expression in string format and check if it is valid or not, use JavaScript(js) engine in Java i.e. It is scripting.

Table of Contents

To parse the mathematical expression in scripting, use the ScriptEngine class as shown below:

ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");

Create an object to store the results and use the eval function of javascript that return the evaluated value as mention below :

Object  result = engine.eval(expression);

Example 1: Java Program To check whether Expression is valid or not? Return True or False

   
 
/*;==========================================
; Title: Create a java program to check expression is valid or not using string.
; Author: codenaive littleboy8506@   
; Date:   10 May 2021
;==========================================*/
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class CheckExpressionValid
{
    public static boolean checkExpression(String expression){
         ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
        try {
            Object  result = engine.eval(expression);
             return true;
        }
        catch (ScriptException e) {
            return false;

        }
       
    }
	public static void main(String[] args) {
	 

	    boolean result; 
	      
        String validExpr = "(5+8)*((5-2)+(8-1))";
        String invalidExpr = "(5+*8)*((5-2)+(8-1)";
        
        // evaluate valid expression  
        
        result = checkExpression(validExpr);
        if(result !=true){
            System.out.println(validExpr+" NOT a Valid Expression ");
        }
        else{
             System.out.println(validExpr+" is a Valid Expression ");
        }
        
        
        // evaluate invalid expression 
        result = checkExpression(invalidExpr);
        if(result !=true){
            System.out.println(invalidExpr+" NOT a Valid Expression ");
        }
        else{
             System.out.println(invalidExpr+" is a Valid Expression ");
        }
        
        
	}
}

    

Output 1:

(5+8)*((5-2)+(8-1)) is a Valid Expression 
(5+*8)*((5-2)+(8-1) NOT a Valid Expression

Example 2: Java Program To check whether Expression is valid or not? Use Custom Input, Return True or False.

To evaluate with variables, use the following snippet code as shown below :

int x= 1;
String validExpr = "(5+"+x+")*((5-2)+(8-1))";
String invalidExpr = "(5+*8)*((5-"+x+")+(8-1)";
   
 
    
/*;==========================================
; Title: Create a java program to check expression is valid or not using string (with input).
; Author: codenaive littleboy8506@   
; Date:   10 May 2021
;==========================================*/
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class CheckExpressionValid
{
    public static boolean checkExpression(String expression){
         ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
        try {
            Object  result = engine.eval(expression);
             return true;
        }
        catch (ScriptException e) {
            return false;

        }
       
    }
	public static void main(String[] args) {
	 
	    
	    boolean result; 
	    int x= 1;
        String validExpr = "(5+"+x+")*((5-2)+(8-1))";
        String invalidExpr = "(5+*8)*((5-"+x+")+(8-1)";
        
        // evaluate valid expression  
        
        result = checkExpression(validExpr);
        if(result !=true){
            System.out.println(validExpr+" NOT a Valid Expression ");
        }
        else{
             System.out.println(validExpr+" is a Valid Expression ");
        }
        
        
        // evaluate invalid expression 
        result = checkExpression(invalidExpr);
        if(result !=true){
            System.out.println(invalidExpr+" NOT a Valid Expression ");
        }
        else{
             System.out.println(invalidExpr+" is a Valid Expression ");
        }
        
        
	}
}

    

Output 2:

(5+1)*((5-2)+(8-1)) is a Valid Expression 
(5+*8)*((5-1)+(8-1) NOT a Valid Expression

Leave a Reply

Your email address will not be published. Required fields are marked *