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:
Spring Security with Maven
Spring Cloud – Securing Services
Java Program to Perform Addition Operation Using Bitwise Operators
Test a REST API with Java
Spring AMQP in Reactive Applications
Working With Maps Using Streams
Collect a Java Stream to an Immutable Collection
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Java equals() and hashCode() Contracts
Hướng dẫn Java Design Pattern – Template Method
Find the Registered Spring Security Filters
Java Program to Implement K Way Merge Algorithm
Java Program to Implement Hash Tables Chaining with List Heads
Creating a Web Application with Spring 5
The “final” Keyword in Java
Java Program to Perform Searching Based on Locality of Reference
Collect a Java Stream to an Immutable Collection
LIKE Queries in Spring JPA Repositories
More Jackson Annotations
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
How To Serialize and Deserialize Enums with Jackson
Java Program to Implement Suffix Array
Xây dựng ứng dụng Client-Server với Socket trong Java
Server-Sent Events in Spring
Java Program to Implement Threaded Binary Tree
Java Program to Implement Bellman-Ford Algorithm
Hướng dẫn Java Design Pattern – Intercepting Filter
Java Program to Implement Segment Tree
Guide to Character Encoding
Introduction to Project Reactor Bus
Java Program to Implement Caesar Cypher
Spring Data – CrudRepository save() Method