Documentation Contents

# Strings in switch Statements

In the JDK 7 release, you can use a `String` object in the expression of a `switch` statement:

    public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
         String typeOfDay;
         switch (dayOfWeekArg) {
             case "Monday":
                 typeOfDay = "Start of work week";
                 break;
             case "Tuesday":
             case "Wednesday":
             case "Thursday":
                 typeOfDay = "Midweek";
                 break;
             case "Friday":
                 typeOfDay = "End of work week";
                 break;
             case "Saturday":
             case "Sunday":
                 typeOfDay = "Weekend";
                 break;
             default:
                 throw new IllegalArgumentException("Invalid day of the week: " + dayOfWeekArg);
         }
         return typeOfDay;
    }

The `switch` statement compares the `String` object in its expression with the expressions associated with each `case` label as if it were using the `String.equals` method; consequently, the comparison of `String` objects in `switch` statements is case sensitive. The Java compiler generates generally more efficient bytecode from `switch` statements that use `String` objects than from chained `if-then-else` statements.

Copyright © 1993, 2018, Oracle and/or its affiliates. All rights reserved.
Contact Us