1

我正在尝试编写一个使用 char 表示每种情况的 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

4 回答 4

5

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

case "R":

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

于 2012-10-09T22:33:05.080 回答
1

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

switch (inputCode[0]) {

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

case "R":
于 2012-10-09T22:33:10.530 回答
0

inputCode似乎是的实例,String您正试图将其与char,

java -7 及之后支持 switch 中的字符串

于 2012-10-09T22:33:17.473 回答
0

inputCode是一个字符串实例。

于 2012-10-09T22:33:42.730 回答