В повседневной работе очень часто приходится использовать объекты String для обработки входящих данных и следующих манипуляций.
Часто приходится писать методы, которые принимают строку и в зависимости от содержания этой строки, выполняются определенные участки кода. Раньше для реализации такого метода приходилось использовать конструкцию if-else или придумывать обходные пути. Однако с Java 7 у программистов появилась возможность использовать удобный оператор switch со строками!
Пример использования String в Switch.
В программе ниже представлен простой пример того, как с использовать строки с оператором switch на Java. Также для наглядности приведен такой же метод, но с использованием if-else.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package ua.com.prologistic; public class SwitchStringExample { public static void main(String[] args) { printColorUsingSwitch("red"); printColorUsingIf("red"); // switch является регистрочувствительным оператором printColorUsingSwitch("RED"); } // метод печатает в консоль входную строку color, // если найдет соответствие из предложенных вариантов // реализован с помощью if-else private static void printColorUsingIf(String color) { if (color.equals("blue")) { System.out.println("BLUE"); } else if (color.equals("red")) { System.out.println("RED"); } else { System.out.println("INVALID COLOR CODE"); } } // метод печатает в консоль входную строку color, // если найдет соответствие из предложенных вариантов // реализован с помощью оператора switch private static void printColorUsingSwitch(String color) { switch (color) { case "blue": System.out.println("BLUE"); break; case "red": System.out.println("RED"); break; default: System.out.println("INVALID COLOR CODE"); } } } |
Важные моменты по поводу использования switch со строками в Java:
- Использование String в операторе switch делает код более читабельным, заменив многократное использование if-else.
- Оператор switch является чувствительным к регистру.
- В Switch используется метод
String.equals()
для сравнивания переданного на вход значения с существующими значениями. - Обязательно проверяйте переданную в switch строку на
null
, иначе можно получитьNullPointerException
. - Согласно Java 7 документации по строкам в switch, компилятор Java генерирует более эффективный байт-код, чем для нескольких if-else.
- Прежде чем использовать switch в своих программах или проектах на работе, убедитесь, что проект использует Java 7 и выше — иначе будет выброшено исключение.
Важный момент: чтобы писать меньше и красивее, по возможности используйте тернарный оператор в Java вместо того де switch или if-else.