Ok so I'm trying to make a command line calculator where it detects if your trying to add/subtract/multiply/divide using the String.contains method. Multiplication and division work just fine, but when I try to add or subtract, it spits out a bunch of errors. Can someone please tell me what I'm doing wrong?
import java.util.Scanner;
public class CalculatorCode {
public static void main(String[] args) {
while(true){
Scanner input = new Scanner(System.in);
String userinput = input.nextLine();
if(userinput.contains("x")){
String[] multiply = userinput.split("x");
String multiply1 = multiply[0];
String multiply2 = multiply[1];
double a = Double.parseDouble(multiply1);
double b = Double.parseDouble(multiply2);
double multoutput = a * b;
System.out.println(a + "x" + b + "=" + multoutput);
}
if(userinput.contains("/")){
String[] divide = userinput.split("/");
String divide1 = divide[0];
String divide2 = divide[1];
double c = Double.parseDouble(divide1);
double d = Double.parseDouble(divide2);
double divideoutput = c/d;
System.out.println(c + "/" + d + "=" + divideoutput);
}
if(userinput.contains("-")){
String[] subtract = userinput.split("-");
String subtract1 = subtract[1];
String subtract2 = subtract[2];
double e = Double.parseDouble(subtract1);
double f = Double.parseDouble(subtract2);
double suboutput = e - f;
System.out.println(e + "-" + f + "=" + suboutput);
}
if(userinput.contains("+")){
String[] add = userinput.split("+");
String add1 = add[1];
String add2 = add[2];
double g = Double.parseDouble(add1);
double h = Double.parseDouble(add2);
double addoutput = g - h;
System.out.println(g + "-" + h + "=" + addoutput);
}
}
}
}
Errors for addition:
Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0 + ^ at java.util.regex.Pattern.error(Pattern.java:1713) at java.util.regex.Pattern.sequence(Pattern.java:1878) at java.util.regex.Pattern.expr(Pattern.java:1752) at java.util.regex.Pattern.compile(Pattern.java:1460) at java.util.regex.Pattern.(Pattern.java:1133) at java.util.regex.Pattern.compile(Pattern.java:823) at java.lang.String.split(String.java:2292) at java.lang.String.split(String.java:2334) at CalculatorCode.main(CalculatorCode.java:36)
Subtraction Errors:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 at CalculatorCode.main(CalculatorCode.java:29)