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:
Guide to Character Encoding
Java Program to Implement Counting Sort
Spring Boot - Thymeleaf
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Handling Errors in Spring WebFlux
Java Program to Compare Binary and Sequential Search
Spring MVC Custom Validation
Java Program to Perform String Matching Using String Library
Java Program to Implement RoleUnresolvedList API
Java Program to Find Inverse of a Matrix
Guide to @ConfigurationProperties in Spring Boot
Java Program to Perform Search in a BST
New Features in Java 13
Spring Boot Integration Testing with Embedded MongoDB
Shuffling Collections In Java
Java Program to Implement Booth Algorithm
JUnit 5 @Test Annotation
Adding Shutdown Hooks for JVM Applications
Binary Numbers in Java
Java Program to Perform Finite State Automaton based Search
Java Program to Implement Sieve Of Atkin
Removing all Nulls from a List in Java
Count Occurrences of a Char in a String
LinkedList trong java
Java Program to Implement Tarjan Algorithm
Java Program to Find the Number of Ways to Write a Number as the Sum of Numbers Smaller than Itself
XML-Based Injection in Spring
Generating Random Numbers in a Range in Java
Performance Difference Between save() and saveAll() in Spring Data
Encode a String to UTF-8 in Java
Java 8 Predicate Chain
Java Program to Use rand and srand Functions