拆分字符串 Java 计算器
Split String Java Calculator
我有这个代码
错误出现在关于 -、* 和 / 操作的 if 语句中 "The operator / is undefined for the argument type(s) java.lang.String, java.lang.String" 谁能帮忙
您必须解析每个部分才能对它们执行数学运算。您不能对字符串执行此类操作(但您可以使用“+”连接字符串,但不能使用总和)。像这样:
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");
String calculation=scan.nextLine();
String [] parts = calculation.split(" ");
int part1 = Integer.parseInt(parts[0]);
int part2 = Integer.parseInt(parts[1]);
int answer;
String operation = parts[2];
switch (operation) {
case "+":
answer = part1 + part2;
break;
case "-":
answer = part1 - part2;
break;
case "*":
answer = part1 * part2;
break;
case "/":
answer = part1 / part2;
break;
default:
throw new IllegalStateException("Incorrect operation: " + operation);
}
String ans = String.valueOf(answer);
System.out.println(ans);
}
}
如果你想打印错误的操作符号,你必须修改程序。首先,我们需要将整数 answer 变量初始化为“0”,并且您需要创建新的布尔变量来标记操作的正确性。
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");
String calculation=scan.nextLine();
String [] parts = calculation.split(" ");
int part1 = Integer.parseInt(parts[0]);
int part2 = Integer.parseInt(parts[1]);
int answer = 0;
boolean incorrectOperation = false;
String operation = parts[2];
switch (operation) {
case "+":
answer = part1 + part2;
break;
case "-":
answer = part1 - part2;
break;
case "*":
answer = part1 * part2;
break;
case "/":
answer = part1 / part2;
break;
default:
incorrectOperation = true;
}
String ans;
if(incorrectOperation) {
ans = "Incorrect operation: " + operation;
} else {
ans = String.valueOf(answer);
}
System.out.println(ans);
}
}
除了使用 Integer.parse(),为什么不在您的用例中使用 scanner.nextInt()?
int part1 = scan.nextInt();
int part2 = scan.nextInt();
String operation = scan.nextLine().trim();
我有这个代码
错误出现在关于 -、* 和 / 操作的 if 语句中 "The operator / is undefined for the argument type(s) java.lang.String, java.lang.String" 谁能帮忙
您必须解析每个部分才能对它们执行数学运算。您不能对字符串执行此类操作(但您可以使用“+”连接字符串,但不能使用总和)。像这样:
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");
String calculation=scan.nextLine();
String [] parts = calculation.split(" ");
int part1 = Integer.parseInt(parts[0]);
int part2 = Integer.parseInt(parts[1]);
int answer;
String operation = parts[2];
switch (operation) {
case "+":
answer = part1 + part2;
break;
case "-":
answer = part1 - part2;
break;
case "*":
answer = part1 * part2;
break;
case "/":
answer = part1 / part2;
break;
default:
throw new IllegalStateException("Incorrect operation: " + operation);
}
String ans = String.valueOf(answer);
System.out.println(ans);
}
}
如果你想打印错误的操作符号,你必须修改程序。首先,我们需要将整数 answer 变量初始化为“0”,并且您需要创建新的布尔变量来标记操作的正确性。
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in) ;
System.out.println("Enter your two numbers and the operation with spaces between e.g 8 9 -");
String calculation=scan.nextLine();
String [] parts = calculation.split(" ");
int part1 = Integer.parseInt(parts[0]);
int part2 = Integer.parseInt(parts[1]);
int answer = 0;
boolean incorrectOperation = false;
String operation = parts[2];
switch (operation) {
case "+":
answer = part1 + part2;
break;
case "-":
answer = part1 - part2;
break;
case "*":
answer = part1 * part2;
break;
case "/":
answer = part1 / part2;
break;
default:
incorrectOperation = true;
}
String ans;
if(incorrectOperation) {
ans = "Incorrect operation: " + operation;
} else {
ans = String.valueOf(answer);
}
System.out.println(ans);
}
}
除了使用 Integer.parse(),为什么不在您的用例中使用 scanner.nextInt()?
int part1 = scan.nextInt();
int part2 = scan.nextInt();
String operation = scan.nextLine().trim();