This is a Java Program to Check for balanced parenthesis by using Stacks. Parenthesis matching is commonly used for evaluating arithmetic expressions and in editors for validating syntax.
Here is the source code of the Java Program to check for balanced parenthesis by using stacks. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
/*
* Java Program to Check for balanced paranthesis by using Stacks
*/
import java.util.*;
public class ParenthesisMatching
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
/* Creating Stack */
Stack<Integer> stk = new Stack<Integer>();
System.out.println("Parenthesis Matching Test\n");
/* Accepting expression */
System.out.println("Enter expression");
String exp = scan.next();
int len = exp.length();
System.out.println("\nMatches and Mismatches:\n");
for (int i = 0; i < len; i++)
{
char ch = exp.charAt(i);
if (ch == '(')
stk.push(i);
else if (ch == ')')
{
try
{
int p = stk.pop() + 1;
System.out.println("')' at index "+(i+1)+" matched with ')' at index "+p);
}
catch(Exception e)
{
System.out.println("')' at index "+(i+1)+" is unmatched");
}
}
}
while (!stk.isEmpty() )
System.out.println("'(' at index "+(stk.pop() +1)+" is unmatched");
}
}
Parenthesis Matching Test
Enter expression
(a+(b*c)-d)
Matches and Mismatches:
')' at index 8 matched with ')' at index 4
')' at index 11 matched with ')' at index 1
Parenthesis Matching Test
Enter expression
((x+y/(z-w))
Matches and Mismatches:
')' at index 11 matched with ')' at index 7
')' at index 12 matched with ')' at index 2
'(' at index 1 is unmatched
Parenthesis Matching Test
Enter expression
(a+b*(c-d)-(e-f/(g+h*(k-i)/(l-j+k
Matches and Mismatches:
')' at index 10 matched with ')' at index 6
')' at index 26 matched with ')' at index 22
'(' at index 28 is unmatched
'(' at index 17 is unmatched
'(' at index 12 is unmatched
'(' at index 1 is unmatched
Related posts:
A Guide to TreeMap in Java
Từ khóa this và super trong Java
Show Hibernate/JPA SQL Statements from Spring Boot
Introduction to Spring Boot CLI
Spring Boot - Internationalization
Java 8 Predicate Chain
Custom Error Pages with Spring MVC
Java Program to Implement K Way Merge Algorithm
Registration with Spring Security – Password Encoding
Working with Network Interfaces in Java
Extra Login Fields with Spring Security
Toán tử trong java
Custom Exception trong Java
Using a Mutex Object in Java
Java Program to Generate Random Numbers Using Probability Distribution Function
Java Program to Solve Tower of Hanoi Problem using Stacks
Java Program to Implement Binary Heap
Introduction to Spring MVC HandlerInterceptor
A Quick Guide to Spring MVC Matrix Variables
A Guide to WatchService in Java NIO2
Spring WebFlux Filters
Semaphore trong Java
Java Program to Implement Wagner and Fisher Algorithm for online String Matching
Java Program to Find the Connected Components of an UnDirected Graph
Using JWT with Spring Security OAuth (legacy stack)
Java program to Implement Tree Set
Recommended Package Structure of a Spring Boot Project
Java Program to Create a Random Linear Extension for a DAG
Biểu thức Lambda trong Java 8 – Lambda Expressions
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
Java Web Services – JAX-WS – SOAP
A Guide to JPA with Spring