Java String Switch Case Example

Java 7 started support for using String in switch case. In earlier versions, if you have to write conditional logic based on a string, you had to use if-else blocks.


Java String Switch Case Example

Let’s look at some examples of using string in switch case statements.

package net.javastring.strings;

import java.util.Scanner;

public class JavaStringSwitchCase {

	public static void main(String[] args) {

		System.out.print("Please enter any programming language:\n");

		Scanner scanner = new Scanner(System.in);

		String input = scanner.next();
		
		scanner.close();

		switch (input) {
		case "java":
			System.out.println("Java Current Version is 12.");
			break;
		case "python":
			System.out.println("Python Current Version is 3.7");
			break;
		case "rust":
			System.out.println("Rust Current Version is 1.34.1");
			break;
		default:
			System.out.println("We don't have information about this programming language");
		}
	}

}

Output:

Java String Switch Case
Java String Switch Case

Java String Switch Case vs if-else

Let’s have a look at the alternate implementation of above code using if-else block.

if ("java".equals(input))
	System.out.println("Java Current Version is 12.");
else if ("python".equals(input))
	System.out.println("Python Current Version is 3.7");
else if ("rust".equals(input))
	System.out.println("Rust Current Version is 1.34.1");
else
	System.out.println("We don't have information about this programming language");

Important Points for String in Switch Case

  • Java switch case with string is more readable than the multiple if-else if-else blocks.
  • The switch case matching is case sensitive, so “java” will not match for input string “Java”.
  • If the input string is null, switch-case will throw NullPointerException. So have a null check in place before writing the switch-case code.
  • The bytecode generated by switch-case is more efficient than the if-else blocks. You can check this in the reference article below.
  • You can convert the input string and all the case values to either uppercase or lowercase for case insensitive match.

References: