«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.