Класс Normalizer
public final class Normalizer extends Object
normalize, который преобразует текст Unicode в эквивалентную составную или разложенную форму, упрощая сортировку и поиск текста. Метод normalize поддерживает стандартные формы нормализации, описанные в Приложении № 15 к стандарту Unicode — Формы нормализации Unicode. Символы с диакритическими знаками или другими надстрочными и подстрочными знаками могут кодироваться в Unicode несколькими разными способами. Например, возьмём символ A с акутом. В Unicode его можно закодировать одним символом (в «составной» форме):
U+00C1 LATIN CAPITAL LETTER A WITH ACUTE или двумя отдельными символами (в «разложенной» форме):
U+0041 LATIN CAPITAL LETTER A
U+0301 COMBINING ACUTE ACCENT Однако для пользователя вашей программы обе эти последовательности должны рассматриваться как один и тот же символ «пользовательского уровня» — «A с акутом». При поиске или сравнении текста необходимо обеспечить эквивалентность этих двух последовательностей. Кроме того, нужно обрабатывать символы с несколькими диакритическими знаками. Иногда порядок комбинируемых с символом диакритических знаков имеет значение, а в других случаях последовательности знаков в разном порядке фактически эквивалентны. Аналогичным образом строка «ffi» может кодироваться тремя отдельными буквами:
U+0066 LATIN SMALL LETTER F
U+0066 LATIN SMALL LETTER F
U+0069 LATIN SMALL LETTER I или одним символом
U+FB03 LATIN SMALL LIGATURE FFI Лигатура ffi не является отдельным семантическим символом и, строго говоря, вообще не должна была бы входить в Unicode, но она была включена для совместимости с существующими наборами символов, в которых она уже присутствовала. Стандарт Unicode обозначает такие символы, задавая для них «совместимые» разложения на соответствующие семантические символы. При сортировке и поиске часто требуется использовать эти соответствия. Метод normalize помогает решить эти проблемы, преобразуя текст в канонические составную и разложенную формы, как показано в первом примере выше. Кроме того, можно включить совместимое разложение, чтобы обрабатывать совместимые символы так же, как их эквиваленты. Наконец, метод normalize переставляет диакритические знаки в правильном каноническом порядке, избавляя от необходимости выполнять такую перестановку самостоятельно.
W3C обычно рекомендует обмениваться текстами в NFC. Также обратите внимание, что в большинстве устаревших кодировок символов используются только предварительно составленные формы, и часто в них вообще не кодируются комбинируемые знаки отдельно. Для преобразования в такие кодировки текст Unicode необходимо нормализовать до NFC. Дополнительные примеры использования см. в Приложении к стандарту Unicode.
- Начиная с версии:
- 1.6
- Внешние спецификации
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
Normalizer.Form |
Это перечисление предоставляет константы для четырёх форм нормализации Unicode, описанных в Приложении № 15 к стандарту Unicode — Формы нормализации Unicode, а также два метода доступа к ним. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static boolean |
isNormalized |
Определяет, нормализована ли заданная последовательность значений char. |
static String |
normalize |
Нормализует последовательность значений char. |
Подробное описание методов
normalize
public static String normalize(CharSequence src, Normalizer.Form form)
- Параметры:
-
src— последовательность значений char для нормализации. -
form— форма нормализации: одна изNormalizer.Form.NFC,Normalizer.Form.NFD,Normalizer.Form.NFKC,Normalizer.Form.NFKD - Возвращает:
- Нормализованную строку
- Выбрасывает:
-
NullPointerException— еслиsrcилиformравно null.
isNormalized
public static boolean isNormalized(CharSequence src, Normalizer.Form form)
- Параметры:
-
src— последовательность значений char для проверки. -
form— форма нормализации: одна изNormalizer.Form.NFC,Normalizer.Form.NFD,Normalizer.Form.NFKC,Normalizer.Form.NFKD - Возвращает:
- true, если последовательность значений char нормализована; в противном случае false.
- Выбрасывает:
-
NullPointerException— еслиsrcилиformравно null.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/text/Normalizer.html