Using String in switch statements
This feature is part of my wishlist since I saw that C# has this capability of using String type in switch statements. Before Java 7, the variable used in switch statement can only be integer, byte, short, char and enum. Now let’s take a look at the conventional way of comparing strings using if-else statements.
package com.melodycancode.java;
public class StringComparisonDemo1 {
public static void main(String[] args) {
String selectedOS = "Linux";
if ("Windows".equals(selectedOS)) {
System.out.println("You're using Windows operating system.");
} else if ("Mac OS".equals(selectedOS)) {
System.out.println("You're using Mac OS operating system.");
} else if ("Linux".equals(selectedOS)) {
System.out.println("You're using Linux operating system.");
} else {
System.out.println("Your operating system is not supported");
}
}
}
In Java 7, the above code can be simplified using String in switch statement.
package com.melodycancode.java;
public class StringComparisonDemo2 {
public static void main(String[] args) {
String selectedOS = "Linux";
switch(selectedOS) {
case "Windows":
System.out.println("You're using Windows operating system.");
break;
case "Mac OS":
System.out.println("You're using Mac OS operating system.");
break;
case "Linux":
System.out.println("You're using Linux operating system.");
break;
default:
System.out.println("Your operating system is not supported");
break;
}
}
}
Take note though that string comparison in switch statement is case-sensitive.