Java switch语句中的字符语句大小写值无效

Java switch语句中的字符语句大小写值无效,java,switch-statement,character,Java,Switch Statement,Character,我的代码告诉我case'A+'是一个无效的字符语句,但是我需要能够有case A+、A、A-等等。我想知道的是:我能不能在case值中没有+或-呢?如果是这样,是否有其他方法来识别用户输入到控制台中的内容。我四处浏览都找不到答案。谢谢你的帮助 import java.util.Scanner; public class GradeAdvice { public static void main(String[] args) { // User will input grade a

我的代码告诉我case'A+'是一个无效的字符语句,但是我需要能够有case A+、A、A-等等。我想知道的是:我能不能在case值中没有+或-呢?如果是这样,是否有其他方法来识别用户输入到控制台中的内容。我四处浏览都找不到答案。谢谢你的帮助

import java.util.Scanner;

public class GradeAdvice {

public static void main(String[] args) {


    // User will input grade and program will give advice corresponding 
    // to that grade

    // Prompt use for their grade
    System.out.println("What was your grade on the midterm?");

    char midtermGrade;

    // Create an input object
    Scanner input = new Scanner(System.in);
    midtermGrade = input.next().charAt(0);

    // Determine which advice to give based on grade
    switch (midtermGrade)
    {
        case 'A+' : 
        case 'a+' : System.out.println("Continue doing what you have been doing, ask questions"); 
            break;
        default: System.out.println("This grade is invalid.");
            break;

}
    // Close input
    input.close();
}

}

A+,双引号表示字符串,单引号表示字符。

Java中的字符文字在单引号内标识一个字符,而不是多个字符。对于多个字符,必须使用由双引号字符分隔的字符串

在Java7+中,可以使用字符串作为大小写标签,例如

case "A+":
但您只使用输入的第一个字符。改变

char midtermGrade;
midtermGrade = input.next().charAt(0);

一个字符可以包含一个字符。相反,您可以只使用字符串:


+是字符串,而不是字符。您可以使用C语言而不是“而不是”来实现这一点,但不能使用Java,也不能使用大多数其他语言。最简单的解决方法可能是将开关转换为一系列“if”语句。

这是因为您使用的是字符而不是字符串。一个角色就是它所说的,一个角色。A+是两个字符A和+。对字符串文本使用双引号。例如:

'A' \\ This is a character
"A" \\ This is a string

A+不是字符,而是字符串。请将其定义为字符串

使用字符串,并规范化大小写

switch( input.next().toUpperCase() )
{
    case "A+" :
        ...
    default :
        ...
}

您需要对字符串使用双引号。单引号仅用于6分钟内回答7个字符。好极了,堆栈溢出。永远不要停止惊讶。您可以在Java中打开字符串。@Downvoter,请指出您认为这个答案可以改进的地方。
'A' \\ This is a character
"A" \\ This is a string
switch( input.next().toUpperCase() )
{
    case "A+" :
        ...
    default :
        ...
}