尝试使用方法对计算器进行编程



我是java的新手,正在尝试使用方法创建一个简单的计算器。我知道这并不完美,但我正在尝试取一个字符串,将其转换为双精度,然后加,减,等等。这就是我迄今为止所做的。。。代码运行。。。但它抛出了一个奇怪的非法例外,说"+"是一个悬空修饰符。我的问题是为什么?这似乎会奏效。。。。但显然不是。

代码:

import java.util.Scanner;
public class calculator4 {

public static void main(String [] args){
double sum;
double subtract;
double multi;
double dividend;
String problem;
System.out.println("This is a program designed to perform basic calculator functions.");
System.out.println("Please enter a problem using the following operations:");
System.out.println("For addition, use +.");
System.out.println("For subtraction, use -.");
System.out.println("For multiplication, use *");
System.out.println("For division, use /.");
System.out.println("These are the only accepted values.");
System.out.println("Please enter your problem:");
Scanner scnr = new Scanner(System.in);
problem = scnr.nextLine();
if(problem.contains("+")){
String [] part = problem.split("+");
String part1 = part [0];
String part2 = part [1];
double add1 = Double.parseDouble(part1);
double add2 = Double.parseDouble(part2);
sum = add1 + add2;

}
else if(problem.contains("-")){
String [] part = problem.split("-");
String part1 = part [0];
String part2 = part [1];
double subtract1 = Double.parseDouble(part1);
double subtract2 = Double.parseDouble(part2);
subtract = subtract1 - subtract2;
}
else if(problem.contains("*")){
String [] part = problem.split("*");
String part1 = part [0];
String part2 = part [1];
double multi1 = Double.parseDouble(part1);
double multi2 = Double.parseDouble(part2);
multi = multi1 * multi2;
}
else if(problem.contains("/")){
String [] part = problem.split("/");
String part1 = part [0];
String part2 = part [1];
double dividend1 = Double.parseDouble(part1);
double dividend2 = Double.parseDouble(part2);
dividend = dividend1 * dividend2;
}
}
public double addition(double sum){
return sum;
}
public double subtraction(double subtract){
return subtract;
}
public double multipliation(double multi){
return multi;
}
public double division(double dividend){
return dividend;
}
calculator4 addition = new calculator4();
calculator4 subtraction = new calculator4();
calculator4 multiplication = new calculator4();
calculator4 division = new calculator4();

}

它将加号解释为元字符。尝试逃离"+"用"\"类似:

if(problem.contains("\+")){
...
}

你也必须使用一个双反斜线来逃脱反斜线本身。

这也适用于其他操作数(例如-、*、(。

最新更新