开关表达式(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
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