从 Java 7 开始,可以在 switch-case 语句中使用 String。 在 Java 7 之前如果要测试 String 变量必须要使用以下代码:
String country = getCountry(); // get country from somewhere
if (country.equals("USA")) {
// invite American
} else if (country.equals("UK")) {
// invite British
} else if (country.equals("Japan")) {
// invite Japanese
} else if (country.equals("China")) {
// invite Chinese
} else if (country.equals("France")) {
// invite French
}
从 Java 7 开始可以使用以下更简单,更简洁的 switch-case 语句替换上述if-else语句:
String country = getCountry();
switch (country) {
case "USA":
// invite American
break;
case "UK":
// invite British
break;
case "Japan":
// invite Japanese
break;
case "China":
// invite Chinese
break;
case "France":
// invite French
break;
default:
// unsupported country
}
在switch语句中,通过 String 类的 equals() 方法将变量 country 与 case 子句中的 String 字面量进行比较。
建议在 case 子句中使用 String 常量,如下所示:
// declare String constants in class level
static final String USA = "USA";
static final String UK = "UK";
static final String JAPAN = "Japan";
static final String CHINA = "China";
static final String FRANCE = "France";
// get country from somewhere
String country = getCountry();
// using Strings in switch-case statement
switch (country) {
case USA:
// invite American
break;
case UK:
// invite British
break;
case JAPAN:
// invite Japanese
break;
case CHINA:
// invite Chinese
break;
case FRANCE:
// invite French
break;
default:
// unsupported country
}