开关表达式(switch-expression
)使用String
类型。 如果switch-expression
为null
,则抛出NullPointerException
。
大小写标签必须是字符串文字。不能在 case
标签中使用String
变量。
以下是在switch
语句中使用String
的示例。
public class Main {
public static void main(String[] args) {
String status = "off";
switch (status) {
case "on":
System.out.println("Turn on");
case "off":
System.out.println("Turn off");
break;
default:
System.out.println("Unknown command");
break;
}
}
}
上面的代码生成以下结果。
Turn off
switch比较
String
类的equals()
方法执行区分大小写的字符串比较。
public class Main {
public static void main(String[] args) {
operate("on");
operate("off");
operate("ON");
operate("Nothing");
operate("OFF");
operate("No");
operate("On");
operate("OK");
operate(null);
operate("Yes");
}
public static void operate(String status) {
// Check for null
if (status == null) {
System.out.println("status cannot be null.");
return;
}
status = status.toLowerCase();
switch (status) {
case "on":
System.out.println("Turn on");
break;
case "off":
System.out.println("Turn off");
break;
default:
System.out.println("Unknown command");
break;
}
}
}
上面的代码生成以下结果。
Turn on
Turn off
Turn on
Unknown command
Turn off
Unknown command
Turn on
Unknown command
status cannot be null.
Unknown command