Перейти к основному содержимому

Строковые методы toLowerCase и toUpperCase в Java

· 2 мин. чтения

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 создает новую строку . Другими словами, name не изменяется при вызове toUpperCase .

3. Преобразовать в нижний регистр

Точно так же мы создаем новую строчную строку на основе имени , вызывая toLowerCase :

String lowercaseName = name.toLowerCase();

Это приводит к тому, что lowercaseName имеет значение «john doe» :

assertEquals("john doe", lowercaseName);

Как и в случае с toUpperCase , toLowerCase не изменяет значение name .

4. Изменить регистр с помощью локалей

Кроме того, предоставляя Locale для методов toUpperCase и toLowerCase , мы можем изменить регистр строки , используя правила, специфичные для локали.

Например, мы можем предоставить Locale для турецкого i в верхнем регистре (Unicode 0069 ) :

Locale TURKISH = new Locale("tr");
System.out.println("\u0069".toUpperCase());
System.out.println("\u0069".toUpperCase(TURKISH));

Соответственно, это приводит к заглавной букве I и заглавной букве I с точкой :

I
İ

Мы можем проверить это, используя следующие утверждения:

assertEquals("\u0049", "\u0069".toUpperCase());
assertEquals("\u0130", "\u0069".toUpperCase(TURKISH));

Точно так же мы можем сделать то же самое для toLowerCase, используя турецкий I (Unicode 0049 ):

System.out.println("\u0049".toLowerCase());
System.out.println("\u0049".toLowerCase(TURKISH));

Следовательно, это приводит к нижнему регистру i и нижнему регистру без точек i :

i
ı

Мы можем проверить это, используя следующие утверждения:

assertEquals("\u0069", "\u0049".toLowerCase());
assertEquals("\u0131", "\u0049".toLowerCase(TURKISH));

5. Вывод

В заключение, класс Java String включает методы toUpperCase и toLowerCase для изменения регистра строк . При необходимости можно указать Locale для предоставления правил, специфичных для языкового стандарта, при изменении регистра строки.

Исходный код этой статьи, включая примеры, можно найти на GitHub .