Since Java 7, programmers can use String in the switch-case statement. This simple feature had been waiting for a long time before becoming available in Java 1.7. Imagine we would have to use the following code to test a String variable against a list of values before Java 1.7:
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 }
Now with Java 1.7 we can replace the above if-else statements by this much simpler and cleaner switch-case statement:
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 }
In this switch statement, the String variable country is compared with the String literals in the case clause by the equals() method of the String class.
It’s recommended to declare String constants to be used in the case clause like this:
// 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 }
So remember to use this new, handy language feature since Java 1.7.