Question: My program coverts a infix expression to postfix however I need to add user input validation so that the user's input must be 3-20 characters

My program coverts a infix expression to postfix however I need to add user input validation so that the user's input must be 3-20 characters long and

can only use single digits 0-9 and +, -, *, /, ^, (, ).

The user should be prompted to re-enter an expression if an invalid character is encountered or if the number of characters falls outside of the range (3-20 inclusive).

My code

import java.util.Stack; import java.util.Scanner; public class MyClass { static int getPrecedence(char checkChar) { if (checkChar == '+' || checkChar == '-') return 1; if (checkChar == '*' || checkChar == '/') return 2; if (checkChar == '(' || checkChar == ')') return 0; return -1; } public static void main(String[] args) { Stack < Character > stack = new Stack(); Scanner scanner = new Scanner(System.in); String result = ""; System.out.print("Enter expression: "); String inputStr = scanner.nextLine(); char[] inputCharArray = inputStr.toCharArray(); for (int i = 0; i < inputCharArray.length; i++) { char checkChar = inputCharArray[i]; if (checkChar != '+' && checkChar != '-' && checkChar != '/' && checkChar != '*' && checkChar != '(' && checkChar != ')') { result = result + checkChar; } else { if (checkChar != '(' && checkChar != ')') { if (stack.isEmpty()) { stack.push(checkChar); } else { while (getPrecedence(stack.peek()) >= getPrecedence(checkChar)) { result = result + stack.pop(); if (stack.isEmpty()) break; } stack.push(checkChar); } } else { if (checkChar == '(') stack.push(checkChar); else { while (stack.peek() != '(') { result = result + stack.pop(); } stack.pop(); } } } } while (!stack.isEmpty()) result = result + stack.pop(); System.out.println(result); } }

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!