Java &引用;必须是数组类型,但已解析为字符串“;。。。。为什么以及如何修复它?

Java &引用;必须是数组类型,但已解析为字符串“;。。。。为什么以及如何修复它?,java,arrays,string,Java,Arrays,String,我应该创建一个代码,它基本上充当运算符+、-、*、/、和%的计算器。我已经把代码贴在下面了 导入java.util.Scanner; 公共类测试代码{ public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("Enter an operation: "); String userOperation

我应该创建一个代码,它基本上充当运算符+、-、*、/、和%的计算器。我已经把代码贴在下面了

导入java.util.Scanner; 公共类测试代码{

 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);
      }

}
publicstaticvoidmain(字符串[]args){
扫描仪输入=新扫描仪(System.in);
System.out.println(“输入操作:”);
字符串userOperation=input.nextLine();
if(userOperation.length()!=3){
System.out.println(
用法:java计算器\“操作数1运算符操作数2\”;
系统出口(0);
}
//手术结果
int结果=0;
//从字符串中拆分项目
String[]tokens=userOperation[0]。拆分(“”;尝试:


userOperation
是一个简单的字符串,而不是数组,因此您无法使用
[]
访问它
userOperation
是一个字符串:

String userOperation = input.nextLine(); 
稍后将其视为数组:

userOperation[0]
您不能这样做。如果要从Java中的字符串中获取特定字符,请执行以下操作:

char c = userOperation.charAt(0);

SIDENOTE:我不确定你用这个
到底在做什么。split(“”;
),但我认为你应该更仔细地将你的字符串分割成标记(可能通过正则表达式).

您得到了一个错误,因为您没有提供任何拆分依据。请参阅文档:另外,如果您需要在其字符中拆分字符串,请使用
char[]array=myString.toCharArray();
@DWilches也注意到这一点。这确实取决于OP想要什么,但我可以想象他也需要这样做
char c = userOperation.charAt(0);