«1. Обзор
В этом руководстве мы рассмотрим методы toUpperCase и toLowerCase, включенные в класс Java String.
Мы начнем с создания строки с именем name:
String name = "John Doe";
2. Преобразование в верхний регистр
Чтобы создать новую строку в верхнем регистре на основе имени, мы вызываем метод toUpperCase:
String uppercaseName = name.toUpperCase();
Это приводит к тому, что uppercaseName имеет значение «JOHN DOE»:
assertEquals("JOHN DOE", uppercaseName);
Обратите внимание, что строки неизменяемы в Java и вызов toUpperCase создает новую строку. Другими словами, имя не меняется при вызове toUpperCase.
3. Преобразование в нижний регистр
Аналогичным образом мы создаем новую строчную строку на основе имени, вызывая toLowerCase: ~ Как и в случае с toUpperCase, toLowerCase не изменяет значение имени.
String lowercaseName = name.toLowerCase();
4. Изменение регистра с помощью локалей
assertEquals("john doe", lowercaseName);
Кроме того, указав локаль в методах toUpperCase и toLowerCase, мы можем изменить регистр строки с помощью правил, специфичных для локали.
Например, мы можем предоставить Локаль для прописной буквы турецкого i (Unicode 0069):
Соответственно, это приводит к заглавной букве I и заглавной букве I с точкой:
Мы можем проверить это с использованием следующих утверждений:
Locale TURKISH = new Locale("tr");
System.out.println("\u0069".toUpperCase());
System.out.println("\u0069".toUpperCase(TURKISH));
Аналогично, мы можем сделать то же самое для toLowerCase, используя турецкий I (Unicode 0049):
I
İ
Следовательно, это приводит к строчной букве i и строчной букве i без точки:
assertEquals("\u0049", "\u0069".toUpperCase());
assertEquals("\u0130", "\u0069".toUpperCase(TURKISH));
Мы можем проверить это, используя следующие утверждения:
System.out.println("\u0049".toLowerCase());
System.out.println("\u0049".toLowerCase(TURKISH));
5. Заключение
i
ı
В заключение, класс Java String включает методы toUpperCase и toLowerCase для изменения регистра строки. При необходимости можно указать Locale для предоставления правил, специфичных для языкового стандарта, при изменении регистра строки.
assertEquals("\u0069", "\u0049".toLowerCase());
assertEquals("\u0131", "\u0049".toLowerCase(TURKISH));
Исходный код этой статьи, включая примеры, можно найти на GitHub.
«
The source code for this article, including examples, can be found over on GitHub.