Java: Check if a given string is a mathematical expression
Write a Java program to check if a given string is a mathematical expression or not.
Sample Solution:
Java Code:
public class test {
public static void main(String[] args) {
String text = "10";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = "10 + 20";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = " 10 * 20 * 30 ";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = "-10 * 20 - -30";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = "-10 * 20 - -2e4";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = "100 +";
System.out.println("\nOriginal string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = "100 + foo";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
text = " 10 *+ 20 * 30 ";
System.out.println("Original string: "+text);
System.out.println("Check if the said string is a mathematical expression or not: "+validate(text));
}
public static boolean validate(String text) {
return text.matches("((?:(?:^|[-+_*/])(?:\\s*-?\\d+(\\.\\d+)?(?:[eE][+-]?\\d+)?\\s*))+$)");
}
}
Sample Output:
Original string: 10 Check if the said string is a mathematical expression or not: true Original string: 10 + 20 Check if the said string is a mathematical expression or not: true Original string: 10 * 20 * 30 Check if the said string is a mathematical expression or not: true Original string: -10 * 20 - -30 Check if the said string is a mathematical expression or not: true Original string: -10 * 20 - -2e4 Check if the said string is a mathematical expression or not: true Original string: 100 + Check if the said string is a mathematical expression or not: false Original string: 100 + foo Check if the said string is a mathematical expression or not: false Original string: 10 *+ 20 * 30 Check if the said string is a mathematical expression or not: false
Flowchart :
For more Practice: Solve these Related Problems:
- Write a Java program to verify if a string represents a valid mathematical expression using regex and operator precedence checks.
- Write a Java program to check if a string contains only numbers, arithmetic operators, and valid parentheses.
- Write a Java program to implement a method that returns true if the input string is a properly formatted mathematical formula.
- Write a Java program to validate a mathematical expression by ensuring operands and operators are in a correct sequence.
Java Code Editor:
Contribute your code and comments through Disqus.
Previous: Reverse the words of length higher than 3 in a given string.
Next: Insert a dash between an upper case letter and a lower case letter in a given string.What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics