我应该创建一个基本上充当运算符+, - ,*,/和%的计算器的代码。我已经发布了以下代码。
import java.util.Scanner; 公共类TestCode {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter an operation: ");
String userOperation = input.nextLine();
if (userOperation.length() != 3) {
System.out.println(
"Usage: java Calculator \"operand1 operator operand2\"");
System.exit(0);
}
// The result of the operation
int result = 0;
// Split items from a string
String[] tokens = userOperation[0].split(""); <===== Error line
// Determine the operator
switch (tokens[1].charAt(0)) {
case '+': result = Integer.parseInt(tokens[0]) +
Integer.parseInt(tokens[2]);
break;
case '-': result = Integer.parseInt(tokens[0]) -
Integer.parseInt(tokens[2]);
break;
case '*': result = Integer.parseInt(tokens[0]) *
Integer.parseInt(tokens[2]);
break;
case '/': result = Integer.parseInt(tokens[0]) /
Integer.parseInt(tokens[2]);
}
// Display result
System.out.println(tokens[0] + ' ' + tokens[1] + ' '
+ tokens[2] + " = " + result);
}
}
我已经尝试了几乎所有我能想到的东西。我需要做些什么来改变它,为什么它目前无法正常工作?谢谢!!!
答案 0 :(得分:2)
userOperation
是一个字符串:
String userOperation = input.nextLine();
您稍后将其视为数组:
userOperation[0]
你做不到。如果要从Java中的String中获取特定字符,请执行以下操作:
char c = userOperation.charAt(0);
SIDENOTE :我不确定您使用此.split("");
完全 ,但我认为您应该可能会更仔细地将你的String分成标记(可能是通过正则表达式)。
答案 1 :(得分:0)
尝试:
userOperation.split("")
userOperation
是一个简单的字符串,而不是数组,因此您无法使用[]
访问它。