我的代码告诉我案例'A +'是一个无效的字符陈述,但我需要能够有案例A +,A,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();
}
}
答案 0 :(得分:2)
Java中的字符文字在单引号中标识一个字符,而不是多个字符。对于多个字符,您必须使用由双引号字符分隔的String
。
在Java 7+中,您可以使用String
s作为案例标签,例如
case "A+":
但是你只使用输入的第一个字符。变化
char midtermGrade;
midtermGrade = input.next().charAt(0);
到
String midtermGrade;
midtermGrade = input.next();
答案 1 :(得分:0)
char
可以容纳一个字符。相反,您可以使用String
:
String midtermGrade;
// Create an input object
Scanner input = new Scanner(System.in);
midtermGrade = input.next();
// Determine which advice to give based on grade
switch (midtermGrade)
{
// Note that strings are denoted by "s, not 's.
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;
}
答案 2 :(得分:0)
使用String
,并对案例进行规范化
switch( input.next().toUpperCase() )
{
case "A+" :
...
default :
...
}
答案 3 :(得分:-1)
"A+"
,字符串的双引号,字符的单引号。
答案 4 :(得分:-1)
这是因为您使用的是字符而不是字符串。一个角色正是它所说的一个角色。 A +是两个字符A和+。对字符串文字使用双引号(")。例如:
'A' \\ This is a character
"A" \\ This is a string
答案 5 :(得分:-1)
“A +”不是char,它是字符串,将其定义为字符串。
答案 6 :(得分:-4)
A +是一个字符串,而不是一个字符。您可以在C#(使用"而不是')中完成此操作,但不能使用Java,也不能使用大多数其他语言。最简单的方法可能是将交换机转换为一系列的“如果'语句。