这个问题主要用来检查你对当前 Java开发的了解。Java 7扩展了switch case使用字符串的能力,早期的Java版本不支持这一点。如果您正在实现字符串的条件链,您可以使用if-else条件,如果您使用 Java7或更高版本,则可以使用switch case。
在 Java 7之前,实现基于字符串的条件流的唯一方法是使用if-else条件。但是 Java 7也改进了 switch case来支持 String.
public class SwitchStringExample {
public static void main(String[] args){
printColorUsingSwitch("red");
printColorUsingIf("red");
// switch case string is case sensitive
printColorUsingSwitch("RED");
printColorUsingSwitch(null);
}
private static void printColorUsingIf(String color){
if (color.equals("blue")){
System.out.println("BLUE");
}else if (color.equals("red")){
System.out. println("RED");
}else {
System.out.println("INVALID COLOR CODE");
}
}
private static void printColorUsingSwitch(String color){
switch (color){
case "blue":
System.out.println("BLUE");
break;
case "red":
System.out.println("RED");
break;
default:
System.out.println("INVALID COLOR CODE");
}
}
}
输出结果如下:
RED
RED
INVALID COLOR CODE
Exception in thread "main" java.lang.NullPointerException
at
com.yveshe.SwitchStringExample. printColorUsingSwitch(SwitchStringExample.java:34)
at com.yveshe.SwitchStringExample.main(SwitchStringExample.java:20)
Switch中使用String需要注意以下几点:
1、switch能够取代if-else-if条件链使得代码更加简洁易读
2、switch比较的时候区分大小写,输出的例子也说明了这一点
3、Java中switch是通过String.equals()方法来比较传递值和case值,所以请确保添加NULL检查以避免NullPointerException
4、java编译器为Switch语句中的字符串生成比链式if-else-if条件语句更有效的字节码
5、Java switch case String只能在Java7或更高的版本中使用,否则它会抛出异常
Was this helpful?
0 / 0