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 the Java Queue Interface
Sử dụng CyclicBarrier trong Java
A Guide to Java HashMap
Java Program to Implement LinkedTransferQueue API
Intersection of Two Lists in Java
Getting Started with Custom Deserialization in Jackson
Converting Between Byte Arrays and Hexadecimal Strings in Java
Java Program to Implement Meldable Heap
Java Program to Implement Uniform-Cost Search
OAuth2 for a Spring REST API – Handle the Refresh Token in AngularJS
Java Program to Implement LinkedHashSet API
Java Program to Check Cycle in a Graph using Graph traversal
The XOR Operator in Java
Spring Boot - Internationalization
Spring Boot - Database Handling
A Custom Data Binder in Spring MVC
Java Program to Implement Johnson’s Algorithm
Rate Limiting in Spring Cloud Netflix Zuul
Giới thiệu HATEOAS
Checking for Empty or Blank Strings in Java
Introduction to Spring Cloud Netflix – Eureka
Spring Boot - Runners
Logging a Reactive Sequence
Anonymous Classes in Java
Java Program to Convert a Decimal Number to Binary Number using Stacks
Java Program to Implement Kosaraju Algorithm
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Tính đóng gói (Encapsulation) trong java
Batch Processing with Spring Cloud Data Flow
A Guide to JUnit 5 Extensions
New Features in Java 14
Custom Cascading in Spring Data MongoDB