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