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:
Display Auto-Configuration Report in Spring Boot
Filtering and Transforming Collections in Guava
What is Thread-Safety and How to Achieve it?
How to Define a Spring Boot Filter?
Apache Commons Collections SetUtils
Java Program to Implement Sorted Vector
A Comparison Between Spring and Spring Boot
Java Program to Perform Finite State Automaton based Search
Java – Combine Multiple Collections
Java Program to Find Shortest Path Between All Vertices Using Floyd-Warshall’s Algorithm
Using JWT with Spring Security OAuth (legacy stack)
Case-Insensitive String Matching in Java
Adding a Newline Character to a String in Java
How to Count Duplicate Elements in Arraylist
Hướng dẫn Java Design Pattern – Visitor
A Guide to JPA with Spring
Java Program to Implement Lloyd’s Algorithm
Lớp Collections trong Java (Collections Utility Class)
Comparing Dates in Java
Multi Dimensional ArrayList in Java
REST Web service: Upload và Download file với Jersey 2.x
Java Program to Generate a Graph for a Given Fixed Degree Sequence
Check if a String is a Palindrome in Java
Spring Boot Configuration with Jasypt
Spring Boot - Hystrix
Java Program to Implement RoleList API
Giới thiệu về Stream API trong Java 8
Java Program to Implement RenderingHints API
Java Program to Implement LinkedBlockingQueue API
Spring Boot - Tracing Micro Service Logs
Encode/Decode to/from Base64
Java Program to implement Dynamic Array