【问题标题】:Using string in switch statement, by taking input from user通过从用户那里获取输入,在 switch 语句中使用字符串
【发布时间】:2015-08-13 07:07:20
【问题描述】:

在下面的代码中,在编译期间,我收到“不兼容类型”错误。 如果我使用其他逻辑,例如 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");
        }
    }
}

【问题讨论】:

  • cc 是扫描仪类型的对象,您正在将其与字符串进行比较。
  • 尝试在Scanner cc = new Scanner(System.in); 之后添加String text = cc.nextLine();,然后使用“文本”进行切换。
  • ps:如果你使用重要的变量名,你的错误会更清楚。 IE:扫描仪输入扫描仪...

标签: java string switch-statement incompatibletypeerror


【解决方案1】:

我想你想这样做:

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

希望这能解决您的问题。

【讨论】:

  • 我怀疑 OP 需要在他/她稍后打印时放入一个变量。
  • 我也收到此错误:java.util.Scanner[delimiters=\p{javaWhitespace}+][position=4][match valid=true][need input=false][source closed =false][跳过=false][组分隔符=\,][小数分隔符=\.][正前缀=][负前缀=\Q-\E][正后缀=][负后缀=][NaN string=\Q?\E][infinity string=\Q∞\E] 指新西兰
  • 已修复。那是因为在 SoP 上抄送。
【解决方案2】:

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

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-03
  • 1970-01-01
  • 2019-04-11
  • 2019-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多