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

Using string in switch statement, by taking input from user

在下面的代码中,在编译过程中,出现 'incompatible types' 错误。 如果我使用其他逻辑,如 charAt(0) 和所有,这工作正常。 有没有办法在 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");
   }
}}