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:
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Java Program to Find the Longest Subsequence Common to All Sequences in a Set of Sequences
Java Program to implement Bi Directional Map
Adding Parameters to HttpClient Requests
Java Program to Find Median of Elements where Elements are Stored in 2 Different Arrays
Java Program to implement Bit Set
How to Change the Default Port in Spring Boot
Jackson – Change Name of Field
Java Program to Perform LU Decomposition of any Matrix
Java Program to Find the Minimum value of Binary Search Tree
Java Program to Implement LinkedBlockingQueue API
Practical Java Examples of the Big O Notation
Introduction to Thread Pools in Java
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Inheritance with Jackson
Spring Security Basic Authentication
An Intro to Spring Cloud Security
Guide to Escaping Characters in Java RegExps
Apache Camel with Spring Boot
LinkedHashSet trong Java hoạt động như thế nào?
Introduction to Spliterator in Java
Java Program to Implement Naor-Reingold Pseudo Random Function
Java Program to Perform integer Partition for a Specific Case
Java Program to Implement AVL Tree
Java Program to Use Above Below Primitive to Test Whether Two Lines Intersect
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Java Program to Implement Kosaraju Algorithm
Spring WebClient Filters
Intersection of Two Lists in Java
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Java Program to Implement Counting Sort