Spec-Zone.ru › OpenJDK 24

Класс Normalizer

java.lang.Object
java.text.Normalizer
public final class Normalizer extends Object
Этот класс предоставляет метод normalize, который преобразует текст Юникода в эквивалентную составную или разложенную форму, что упрощает сортировку и поиск текста. Метод normalize поддерживает стандартные формы нормализации, описанные в Приложении к стандарту Юникод #15 — Формы нормализации Юникода.

Символы с диакритическими знаками или другими украшениями могут быть закодированы в Юникоде несколькими различными способами. Например, рассмотрим символ A-с ударением. В Юникоде он может быть закодирован как один символ (форма "составная"):

      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 не является отдельным семантическим символом, и строго говоря, она не должна быть в Юникоде вообще, но она была включена для совместимости с существующими наборами символов, которые уже ее предоставляли. Стандарт Юникода идентифицирует такие символы, предоставляя им "совместимые" разложения на соответствующие семантические символы. При сортировке и поиске часто требуется использовать эти отображения.

Метод normalize помогает решить эти проблемы, преобразуя текст в канонические составную и разложенную формы, как показано в первом примере выше. Кроме того, вы можете настроить его на выполнение совместимых разложений, чтобы вы могли обрабатывать совместимые символы так же, как и их эквиваленты. Наконец, метод normalize переупорядочивает диакритические знаки в правильный канонический порядок, чтобы вам не нужно было беспокоиться о переупорядочении диакритических знаков самостоятельно.

W3C обычно рекомендует обмениваться текстами в формате NFC. Также обратите внимание, что большинство устаревших кодировок символов используют только предварительно составленные формы и часто не кодируют никакие комбинирующие знаки сами по себе. Для преобразования в такие кодировки символов текст Юникода должен быть нормализован в NFC. Более подробные примеры использования см. в Приложении к стандарту Юникод.

С тех пор:
1.6
Внешние спецификации
  • Формы нормализации Юникода

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

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

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

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

Методы, объявленные в классе java.lang.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.

© 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/text/Normalizer.html

Spec-Zone.ru

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