Spec-Zone.ru › OpenJDK 25

Класс Normalizer

java.lang.Object
java.text.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
Внешние спецификации
  • Формы нормализации Unicode

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static enum  Normalizer.Form
Это перечисление предоставляет константы для четырёх форм нормализации Unicode, описанных в Приложении № 15 к стандарту Unicode — Формы нормализации Unicode, а также два метода доступа к ним.

Краткое описание методов

Модификатор и тип Метод Описание
static boolean isNormalized(CharSequence src, Normalizer.Form form)
Определяет, нормализована ли заданная последовательность значений char.
static String normalize(CharSequence src, Normalizer.Form form)
Нормализует последовательность значений char.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

normalize

public static String normalize(CharSequence src, Normalizer.Form form)
Нормализует последовательность значений char. Последовательность нормализуется в соответствии с указанной формой нормализации.
Параметры:
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)
Определяет, нормализована ли заданная последовательность значений char.
Параметры:
src — последовательность значений char для проверки.
form — форма нормализации: одна из Normalizer.Form.NFC, Normalizer.Form.NFD, Normalizer.Form.NFKC, Normalizer.Form.NFKD
Возвращает:
true, если последовательность значений char нормализована; в противном случае false.
Выбрасывает:
NullPointerException — если src или form равно null.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её дочерних компаний в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её дочерние компании, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API