Spec-Zone.ru › OpenJDK 8

Класс Normalizer

  • java.lang.Object
    • java.text.Normalizer

public final class Normalizer
extends Object

Этот класс предоставляет метод normalize, который преобразует текст Unicode в эквивалентную составную или разложенную форму, что упрощает сортировку и поиск текста. Метод normalize поддерживает стандартные формы нормализации, описанные в приложении Unicode Standard Annex #15 — Unicode Normalization Forms.

Символы с диакритическими знаками или другими украшениями могут быть закодированы в 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 Standard Annex.

Since:
1.6

Вложенные классы

Модификатор и тип Класс и описание
static class  Normalizer.Form

Этот перечисление предоставляет константы четырех форм нормализации Unicode, описанных в приложении Unicode Standard Annex #15 — Unicode Normalization Forms, и два метода для доступа к ним.

Методы

Модификатор и тип Метод и описание
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, 2020, 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.

Spec-Zone.ru

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