Класс Bidi
public final class Bidi extends Object
Объект Bidi предоставляет информацию о двунаправленном упорядочивании текста, используемого для его создания. Это необходимо, например, для правильного отображения арабского или иврита. Эти языки по своей природе смешанной направленности, так как числа в них упорядочиваются слева направо, а большая часть другого текста — справа налево.
После создания объекта Bidi можно запросить информацию о том, является ли представляемый им текст полностью слева направо или справа налево. Такие объекты очень лёгкие, и этот текст относительно легко обработать.
Если есть несколько блоков текста, информацию о них можно получить, обращаясь по индексу, чтобы получить начало, конец и уровень блока. Уровень представляет как направление, так и «уровень вложенности» двунаправленного блока. Нечётные уровни — справа налево, а чётные — слева направо. Например, уровень 0 соответствует тексту слева направо, уровень 1 — справа налево, а уровень 2 — тексту слева направо, вложенному в блок справа налево.
- С момента:
- 1.4
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
DIRECTION_DEFAULT_LEFT_TO_RIGHT |
Константа, указывающая, что основное направление зависит от первого сильного символа направления в тексте согласно алгоритму Unicode Bidirectional Algorithm. |
static final int |
DIRECTION_DEFAULT_RIGHT_TO_LEFT |
Константа, указывающая, что основное направление зависит от первого сильного символа направления в тексте согласно алгоритму Unicode Bidirectional Algorithm. |
static final int |
DIRECTION_LEFT_TO_RIGHT |
Константа, указывающая, что основное направление — слева направо. |
static final int |
DIRECTION_RIGHT_TO_LEFT |
Константа, указывающая, что основное направление — справа налево. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
Bidi |
Создаёт Bidi из заданного текста, вложения и информации о направлении. |
Bidi |
Создаёт Bidi из заданного абзаца текста и основного направления. |
Bidi |
Создаёт Bidi из заданного абзаца текста. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
baseIsLeftToRight() |
Возвращает true, если основное направление — слева направо. |
Bidi |
createLineBidi |
Создаёт объект Bidi, представляющий двунаправленную информацию о строке текста в абзаце, представленном текущим объектом Bidi. |
int |
getBaseLevel() |
Возвращает базовый уровень (0, если слева направо, 1, если справа налево). |
int |
getLength() |
Возвращает длину текста в строке. |
int |
getLevelAt |
Возвращает разрешённый уровень символа по смещению. |
int |
getRunCount() |
Возвращает количество блоков уровней. |
int |
getRunLevel |
Возвращает уровень n-го логического блока в этой строке. |
int |
getRunLimit |
Возвращает индекс символа после конца n-го логического блока в этой строке как смещение от начала строки. |
int |
getRunStart |
Возвращает индекс символа в начале n-го логического блока в этой строке как смещение от начала строки. |
boolean |
isLeftToRight() |
Возвращает true, если строка содержит только текст слева направо, и основное направление слева направо. |
boolean |
isMixed() |
Возвращает true, если строка не слева направо или справа налево. |
boolean |
isRightToLeft() |
Возвращает true, если строка содержит только текст справа налево, и основное направление справа налево. |
static void |
reorderVisually |
Переупорядочивает объекты в массиве в визуальном порядке на основе их уровней. |
static boolean |
requiresBidi |
Возвращает true, если указанный текст требует анализа bidi. |
String |
toString() |
Отображает внутреннее состояние bidi, используется при отладке. |
Подробное описание полей
DIRECTION_LEFT_TO_RIGHT
public static final int DIRECTION_LEFT_TO_RIGHT
- См. также:
DIRECTION_RIGHT_TO_LEFT
public static final int DIRECTION_RIGHT_TO_LEFT
- См. также:
DIRECTION_DEFAULT_LEFT_TO_RIGHT
public static final int DIRECTION_DEFAULT_LEFT_TO_RIGHT
- См. также:
DIRECTION_DEFAULT_RIGHT_TO_LEFT
public static final int DIRECTION_DEFAULT_RIGHT_TO_LEFT
- См. также:
Подробное описание конструкторов
Bidi
public Bidi(String paragraph, int flags)
- Параметры:
-
paragraph- абзац текста -
flags- набор флагов, которые управляют алгоритмом. Алгоритм понимает флаги DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_DEFAULT_LEFT_TO_RIGHT и DIRECTION_DEFAULT_RIGHT_TO_LEFT. Другие значения зарезервированы.
Bidi
public Bidi(AttributedCharacterIterator paragraph)
Атрибут RUN_DIRECTION в тексте, если он есть, определяет основное направление (слева направо или справа налево). Если он отсутствует, основное направление вычисляется с использованием алгоритма двунаправленного отображения Unicode, по умолчанию слева направо, если в тексте нет сильных символов направления. Этот атрибут, если он присутствует, должен применяться ко всему тексту в абзаце.
Атрибут BIDI_EMBEDDING в тексте, если он есть, представляет информацию об уровне вложения. Отрицательные значения от -1 до -62 указывают на переопределения на абсолютном значении уровня. Положительные значения от 1 до 62 указывают на вложения. В местах, где значения равны нулю или не определены, предполагается базовый уровень вложения, определяемый основным направлением.
Атрибут NUMERIC_SHAPING в тексте, если он есть, преобразует европейские цифры в другие десятичные цифры перед запуском алгоритма двунаправленного отображения. Этот атрибут, если он присутствует, должен применяться ко всему тексту в абзаце.
- Параметры:
-
paragraph- абзац текста с необязательной информацией об атрибутах символов и абзаца - См. также:
Bidi
public Bidi(char[] text, int textStart, byte[] embeddings, int embStart, int paragraphLength, int flags)
- Параметры:
-
text- массив, содержащий абзац текста для обработки. -
textStart- индекс в массиве текста начала абзаца. -
embeddings- массив, содержащий значения вложения для каждого символа в абзаце. Может быть null, в этом случае предполагается, что внешней информации о вложениях нет. -
embStart- индекс в массиве вложения начала абзаца. -
paragraphLength- длина абзаца в массивах text и embeddings. -
flags- набор флагов, которые управляют алгоритмом. Алгоритм понимает флаги DIRECTION_LEFT_TO_RIGHT, DIRECTION_RIGHT_TO_LEFT, DIRECTION_DEFAULT_LEFT_TO_RIGHT и DIRECTION_DEFAULT_RIGHT_TO_LEFT. Другие значения зарезервированы.
Подробное описание методов
createLineBidi
public Bidi createLineBidi(int lineStart, int lineLimit)
- Параметры:
-
lineStart- смещение от начала абзаца до начала строки. -
lineLimit- смещение от начала абзаца до предела строки. - Возвращает:
- объект
Bidi
isMixed
public boolean isMixed()
- Возвращает:
- true, если строка не слева направо или справа налево.
isLeftToRight
public boolean isLeftToRight()
- Возвращает:
- true, если строка состоит только из текста слева направо, а основное направление — слева направо
isRightToLeft
public boolean isRightToLeft()
- Возвращает:
- true, если строка содержит только текст справа налево, а основное направление — справа налево
getLength
public int getLength()
- Возвращает:
- длину текста в строке
baseIsLeftToRight
public boolean baseIsLeftToRight()
- Возвращает:
- true, если основное направление — слева направо
getBaseLevel
public int getBaseLevel()
- Возвращает:
- базовый уровень
getLevelAt
public int getLevelAt(int offset)
- Параметры:
-
offset- индекс символа, для которого требуется вернуть уровень - Возвращает:
- разрешённый уровень символа по смещению
getRunCount
public int getRunCount()
- Возвращает:
- количество последовательностей уровней
getRunLevel
public int getRunLevel(int run)
- Параметры:
-
run- индекс последовательности, от 0 доgetRunCount() - Возвращает:
- уровень последовательности
getRunStart
public int getRunStart(int run)
- Параметры:
-
run- индекс последовательности, от 0 доgetRunCount() - Возвращает:
- начало последовательности
getRunLimit
public int getRunLimit(int run)
- Параметры:
-
run- индекс последовательности, от 0 доgetRunCount() - Возвращает:
- предел последовательности
requiresBidi
public static boolean requiresBidi(char[] text, int start, int limit)
- Параметры:
-
text- текст, содержащий символы для проверки -
start- начало диапазона символов для проверки -
limit- предел диапазона символов для проверки - Возвращает:
- true, если диапазон символов требует анализа двунаправленного отображения
reorderVisually
public static void reorderVisually(byte[] levels, int levelStart, Object[] objects, int objectStart, int count)
index по objectStart до objectStart + count в массиве объектов будут переупорядочены в визуальном порядке, предполагая, что каждая последовательность текста имеет уровень, указанный соответствующим элементом в массиве уровней (на позиции index - objectStart + levelStart).- Параметры:
-
levels- массив, представляющий уровень bidi каждого объекта -
levelStart- начальная позиция в массиве уровней -
objects- массив объектов, которые должны быть переупорядочены в визуальном порядке -
objectStart- начальная позиция в массиве объектов -
count- количество объектов для переупорядочивания
toString
public String toString()
- Переопределяет:
-
toStringв классеObject - Возвращает:
- строковое представление объекта.
© 1993, 2021, 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/17/docs/api/java.base/java/text/Bidi.html