Java 在switch语句中使用字符串,从用户获取输入

Java 在switch语句中使用字符串,从用户获取输入,java,string,switch-statement,incompatibletypeerror,Java,String,Switch Statement,Incompatibletypeerror,在下面的代码中,在编译过程中,我得到了“不兼容类型”错误。 如果我使用其他逻辑,比如charAt(0)和all,这就可以了。 在java switch语句中没有使用字符串的方法吗? 我正在使用JDK 7 谢谢 import java.util.Scanner; class cCode { public static void Main(String args [])` { System.out.println("Enter country code\nChoic

在下面的代码中,在编译过程中,我得到了“不兼容类型”错误。 如果我使用其他逻辑,比如charAt(0)和all,这就可以了。 在java switch语句中没有使用字符串的方法吗? 我正在使用JDK 7

谢谢

import java.util.Scanner;

class cCode
{
    public static void Main(String args [])`
    {
        System.out.println("Enter country code\nChoices: IND, USA, JPN, NZ, WI");
        Scanner cc = new Scanner(System.in);
        switch(cc)
        {
            case "IND":
                System.out.println(cc+" refers to INDIA");
                break;  
            case "USA":
                System.out.println(cc+" refers to UNITED STATES");
                break;
            case "JPN":
                System.out.println(cc+" refers to JAPAN");
                break;
            case "NZ":
                System.out.println(cc+" refers to NEW ZEALAND");
                break;
            case "WI":
                System.out.println(cc+" refers to WEST INDIES");
                break;
            default:
                System.out.println("Invalid choice");
        }
    }
}

我想你应该这样做:

String theText = cc.next();
switch(theText) {
   //your code.
}

希望这能解决您的问题。

您可以通过从用户处获取输入来使用下面的代码

import java.util.Scanner;
public class cCode {

public static void main(String args[]) {

    System.out.println("Enter country code\nChoices: IND, USA, JPN, NZ, WI");
    Scanner cc = new Scanner(System.in);
    String txt = cc.nextLine();
    switch (txt) {
        case "IND":
            System.out.println(txt + " refers to INDIA");
            break;

        case "USA":
            System.out.println(txt + " refers to UNITED STATES");
            break;

        case "JPN":
            System.out.println(txt + " refers to JAPAN");
            break;

        case "NZ":
            System.out.println(txt + " refers to NEW ZEALAND");
            break;

        case "WI":
            System.out.println(txt + " refers to WEST INDIES");
            break;

        default:
            System.out.println("Invalid choice");
   }
}}

cc是扫描仪类型的对象,您正在将其与字符串进行比较。请尝试添加
String text=cc.nextLine()
扫描器之后cc=新扫描器(System.in),然后对开关使用“文本”。ps:如果使用有效变量名,错误会更清楚。IE:Scanner-inputScanner…可能重复我怀疑OP需要在稍后打印时放入一个变量。我还收到了以下错误:java.util.Scanner[delimiters=\p{javaWhitespace}+][position=4][match valid=true][need-input=false][source closed=false][skiped=false][group separator=\,][decimal separator=\.][positive prefix=][否定前缀=\Q-\E][正后缀=][负后缀=][NaN字符串=\Q?\E][无限字符串=\Q∞\E] 是指新西兰修复了它。这是由于SoP的cc。您可以看到: