在case条件下使用char的switch语句?

时间:2012-10-09 22:31:23

标签: java switch-statement

我正在尝试编写一个使用char来表示每个case的switch语句。在我的教科书中,示例显示我可以使用char来执行此操作,但是当我编译程序时,我得到了这个:

    StudentInvoiceListMenuApp.java:54: error: incompatible types
        case 'R':
             ^
    required: String
    found:    char
    1 error

这是我的代码:

    switch (inputCode) {

        case 'R':
            System.out.println("\nEnter file name:");
            fileName = menuApp.nextLine();
            if (inputCode.trim().length() == 0) {
                break; // no file name entered
            }

4 个答案:

答案 0 :(得分:5)

看起来inputCode的类型为String,而不是char ...所以如果您使用的是Java 7,则只需将其更改为:

case "R":

或者,将inputCode的类型更改为char,并在其他位置进行适当调整。 (如果你没有使用Java 7,这将是你唯一的选择 - 但我怀疑你 使用Java 7,否则你会得到不同的编译器错误。)

答案 1 :(得分:1)

问题是inputCode是一个字符串。如果你想看一下你应该做的字符串的第一个元素:

switch (inputCode[0]) {

如果您想与单个字符串进行比较,您应该这样做:

case "R":

答案 2 :(得分:0)

inputCode似乎是String的实例,您正在尝试将其与char进行比较,

在java -7

之后支持switch中的字符串

答案 3 :(得分:0)

inputCode是一个String实例。