Java 在switch语句中调用ignore大小写
在下面包含switch语句的代码中,是否可以合并equalsIgnoreCase方法,即无论是否输入a或a,用户都可以获得等级消息,等等 我通过使用“将用户输入转换为大写”方法获得了正确的结果,但我很好奇这里是否可以使用ignoreCase方法。我尝试过这样做,但它似乎无论如何都不起作用,可能是因为ignoreCase是一个返回真/假结果的布尔值,而不是一条消息。我试着对此进行研究,但所有的在线结果都建议使用toUpperCase方法,这是我已经尝试过的方法Java 在switch语句中调用ignore大小写,java,Java,在下面包含switch语句的代码中,是否可以合并equalsIgnoreCase方法,即无论是否输入a或a,用户都可以获得等级消息,等等 我通过使用“将用户输入转换为大写”方法获得了正确的结果,但我很好奇这里是否可以使用ignoreCase方法。我尝试过这样做,但它似乎无论如何都不起作用,可能是因为ignoreCase是一个返回真/假结果的布尔值,而不是一条消息。我试着对此进行研究,但所有的在线结果都建议使用toUpperCase方法,这是我已经尝试过的方法 Scanner scan = n
Scanner scan = new Scanner(System.in);
System.out.println("Please enter grade.");
String gradeLetter = scan.next();
String message = "A";
switch (gradeLetter) {
case "A":
message = "Excellent!";
break;
case "B":
message = "Good job.";
break;
case "C":
message = "You passed.";
break;
case "D":
message = "You can do better.";
break;
case "F":
message = "You failed.";
break;
default: message = gradeLetter + " is invalid.";
}
System.out.println(message);
如前所述,您可以打开
gradeLetter.toUpperCase()
您还可以使用下拉,其中多个大小写标签跳转到同一代码块:
switch (gradeLetter) {
case "A":
case "a":
message = "Excellent!";
break;
case "B":
case "b":
message = "Good job.";
break;
/* etc */
例如,考虑“a”和“a”。
case“A”之后没有break
语句:
,因此执行将直接进入case“A”:
块。如前所述,您可以打开gradeLetter.toUpperCase()
您还可以使用下拉,其中多个大小写标签跳转到同一代码块:
switch (gradeLetter) {
case "A":
case "a":
message = "Excellent!";
break;
case "B":
case "b":
message = "Good job.";
break;
/* etc */
例如,考虑“a”和“a”。case“A”之后没有break
语句:
,因此执行直接进入case“A”:
块。您可以切换(gradeLetter.toUpperCase())
,但对我来说这似乎是映射的更好的用例。差不多
Scanner scan = new Scanner(System.in);
Map<String, String> map = new HashMap<>();
map.put("A", "Excellent!");
map.put("B", "Good job.");
map.put("C", "You passed");
map.put("D", "You can do better.");
map.put("F", "You failed.");
// ... No Loop?
System.out.println("Please enter grade.");
String gradeLetter = scan.next();
System.out.println(map.getOrDefault(gradeLetter.toUpperCase(),
String.format("%s is invalid.", gradeLetter)));
Scanner scan=新的扫描仪(System.in);
Map Map=newhashmap();
地图。放(“A”,“好极了!”);
放在地图上(“B”,“干得好”);
地图。放置(“C”,“你通过了”);
地图。放(“D”,“你可以做得更好。”);
map.put(“F”,“你失败了”);
// ... 没有循环?
System.out.println(“请输入成绩”);
String gradeLetter=scan.next();
System.out.println(map.getOrDefault(gradeLetter.toUpperCase(),
格式(“%s无效。”,gradeLetter));
您可以切换(gradeLetter.toUpperCase())
,但对我来说,这似乎是映射的更好用例。差不多
Scanner scan = new Scanner(System.in);
Map<String, String> map = new HashMap<>();
map.put("A", "Excellent!");
map.put("B", "Good job.");
map.put("C", "You passed");
map.put("D", "You can do better.");
map.put("F", "You failed.");
// ... No Loop?
System.out.println("Please enter grade.");
String gradeLetter = scan.next();
System.out.println(map.getOrDefault(gradeLetter.toUpperCase(),
String.format("%s is invalid.", gradeLetter)));
Scanner scan=新的扫描仪(System.in);
Map Map=newhashmap();
地图。放(“A”,“好极了!”);
放在地图上(“B”,“干得好”);
地图。放置(“C”,“你通过了”);
地图。放(“D”,“你可以做得更好。”);
map.put(“F”,“你失败了”);
// ... 没有循环?
System.out.println(“请输入成绩”);
String gradeLetter=scan.next();
System.out.println(map.getOrDefault(gradeLetter.toUpperCase(),
格式(“%s无效。”,gradeLetter));
我可能会选择Enum
我自己,尽管这个解决方案的优点是将来需要数据/属性驱动:)我可能会选择Enum
我自己,尽管这个解决方案的优点是将来需要数据/属性驱动:)