Spec-Zone .ru
спецификации, руководства, описания, API
|
public final class NumericShaper extends Object implements Serializable
NumericShaper
класс используется, чтобы преобразовать латинскую 1 (европейскую) цифру в другие десятичные цифры Unicode. Пользователи этого класса прежде всего будут людьми, которые хотят представить данные, используя национальные формы цифры, но счесть более удобным представить данные, внутренне используя латинскую 1 (европейскую) цифру. Это не интерпретирует осуждаемый числовой символ селектора формы (U+206E). Экземпляры NumericShaper
обычно применяются как атрибуты к тексту с NUMERIC_SHAPING
атрибут TextAttribute
класс. Например, этот фрагмент кода вызывает a TextLayout
сформировать европейские цифры на арабский язык в арабском контексте:
Map map = new HashMap(); map.put(TextAttribute.NUMERIC_SHAPING, NumericShaper.getContextualShaper(NumericShaper.ARABIC)); FontRenderContext frc = ...; TextLayout layout = new TextLayout(text, map, frc); layout.draw(g2d, x, y);
NumericShaper
, поскольку этот фрагмент кода демонстрирует:char[] text = ...; // shape all EUROPEAN digits (except zero) to ARABIC digits NumericShaper shaper = NumericShaper.getShaper(NumericShaper.ARABIC); shaper.shape(text, start, count); // shape European digits to ARABIC digits if preceding text is Arabic, or // shape European digits to TAMIL digits if preceding text is Tamil, or // leave European digits alone if there is no preceding text, or // preceding text is neither Arabic nor Tamil NumericShaper shaper = NumericShaper.getContextualShaper(NumericShaper.ARABIC | NumericShaper.TAMIL, NumericShaper.EUROPEAN); shaper.shape(text, start, count);
Битовая маска - и основанные на перечислении диапазоны Unicode
Этот класс поддерживает два различных интерфейса программирования, чтобы представить диапазоны Unicode для специфичных для сценария цифр: основанные на битовой маске, такой как NumericShaper.ARABIC
, и основанные на перечислении, такой как NumericShaper.Range.ARABIC
. Многократные диапазоны могут быть определены осуществлением операции ИЛИ основанные на битовой маске константы, такие как:
или создание aNumericShaper.ARABIC | NumericShaper.TAMIL
Set
с NumericShaper.Range
константы, такие как: Основанные на перечислении диапазоны являются набором высшего качества основанных на битовой маске.EnumSet.of(NumericShaper.Scirpt.ARABIC, NumericShaper.Range.TAMIL)
Если два интерфейса смешиваются (включая сериализацию), значения диапазона Unicode отображаются на их дубликаты, где такое отображение возможно, такой как NumericShaper.Range.ARABIC
из/в NumericShaper.ARABIC
. Если какие-либо неотображаемые значения диапазона определяются, такой как NumericShaper.Range.BALINESE
, те диапазоны игнорируются.
Приоритет Десятичных цифр
У диапазона Unicode может быть больше чем один набор десятичных цифр. Если многократные наборы десятичных цифр будут определены для того же самого диапазона Unicode, то один из наборов будет иметь приоритет следующим образом.
Диапазон Unicode | NumericShaper Константы |
Приоритет |
---|---|---|
Арабский язык | NumericShaper.ARABIC NumericShaper.EASTERN_ARABIC |
NumericShaper.EASTERN_ARABIC |
NumericShaper.Range.ARABIC NumericShaper.Range.EASTERN_ARABIC |
NumericShaper.Range.EASTERN_ARABIC |
|
Tai Tham | NumericShaper.Range.TAI_THAM_HORA NumericShaper.Range.TAI_THAM_THAM |
NumericShaper.Range.TAI_THAM_THAM |
Модификатор и Тип | Класс и Описание |
---|---|
static class |
NumericShaper. Диапазон
A
NumericShaper.Range представляет диапазон Unicode сценария, имеющего его собственные десятичные цифры. |
Модификатор и Тип | Поле и Описание |
---|---|
static int |
ALL_RANGES
Идентифицирует все диапазоны, для полного контекстного формирования.
|
static int |
АРАБСКИЙ ЯЗЫК
Идентифицирует АРАБСКИЙ диапазон и десятичную основу.
|
static int |
БЕНГАЛЬСКИЙ ЯЗЫК
Идентифицирует БЕНГАЛЬСКИЙ диапазон и десятичную основу.
|
static int |
ДЕВАНАГАРИ
Идентифицирует диапазон ДЕВАНАГАРИ и десятичную основу.
|
static int |
EASTERN_ARABIC
Идентифицирует АРАБСКИЙ диапазон и десятичную основу ARABIC_EXTENDED.
|
static int |
ДРЕВНЕЭФИОПСКИЙ ЯЗЫК
Идентифицирует ЭФИОПСКИЙ диапазон и десятичную основу.
|
static int |
ЕВРОПЕЕЦ
Идентифицирует латинский 1 (европейский) и расширенный диапазон, и латинскую 1 (европейскую) десятичную основу.
|
static int |
GUJARATI
Идентифицирует диапазон GUJARATI и десятичную основу.
|
static int |
GURMUKHI
Идентифицирует диапазон GURMUKHI и десятичную основу.
|
static int |
КАННАДА
Идентифицирует диапазон КАННАДЫ и десятичную основу.
|
static int |
КХМЕРСКИЙ ЯЗЫК
Идентифицирует КХМЕРСКИЙ диапазон и десятичную основу.
|
static int |
ЛАОССКИЙ ЯЗЫК
Идентифицирует ЛАОССКИЙ диапазон и десятичную основу.
|
static int |
МАЛАЙЯЛАМ
Идентифицирует диапазон МАЛАЙЯЛАМА и десятичную основу.
|
static int |
МОНГОЛЬСКИЙ ЯЗЫК
Идентифицирует МОНГОЛЬСКИЙ диапазон и десятичную основу.
|
static int |
МЬЯНМА
Идентифицирует диапазон МЬЯНМЫ и десятичную основу.
|
static int |
ЯЗЫК ОРИЯ
Идентифицирует диапазон ОРИЯ и десятичную основу.
|
static int |
ТАМИЛЬСКИЙ ЯЗЫК
Идентифицирует ТАМИЛЬСКИЙ диапазон и десятичную основу.
|
static int |
ЯЗЫК ТЕЛУГУ
Идентифицирует ТЕЛУГУ диапазон и десятичную основу.
|
static int |
ТАЙСКИЙ ЯЗЫК
Идентифицирует ТАЙСКИЙ диапазон и десятичную основу.
|
static int |
ТИБЕТСКИЙ ЯЗЫК
Идентифицирует ТИБЕТСКИЙ диапазон и десятичную основу.
|
Модификатор и Тип | Метод и Описание |
---|---|
boolean |
equals(Object o)
Возвраты
true если указанный объект является экземпляром NumericShaper и формы тождественно этому, независимо от представлений диапазона, битовой маски или перечисления. |
static NumericShaper |
getContextualShaper(int ranges)
Возвращает контекстный формирователь для обеспеченного unicode диапазона (ов).
|
static NumericShaper |
getContextualShaper(int ranges, int defaultContext)
Возвращает контекстный формирователь для обеспеченного unicode диапазона (ов).
|
static NumericShaper |
getContextualShaper(Set<NumericShaper.Range> ranges)
Возвращает контекстный формирователь для обеспеченного диапазона (ов) Unicode.
|
static NumericShaper |
getContextualShaper(Set<NumericShaper.Range> ranges, NumericShaper.Range defaultContext)
Возвращает контекстный формирователь для обеспеченного диапазона (ов) Unicode.
|
int |
getRanges()
Возвраты
int это ORs вместе значения для всех диапазонов, которые будут сформированы. |
Set<NumericShaper.Range> |
getRangeSet()
Возвраты a
Set представление всего Unicode располагается в этом NumericShaper это будет сформировано. |
static NumericShaper |
getShaper(int singleRange)
Возвращает формирователь для обеспеченного диапазона unicode.
|
static NumericShaper |
getShaper(NumericShaper.Range singleRange)
Возвращает формирователь для обеспеченного диапазона Unicode.
|
int |
hashCode()
Возвращает хэш-код для этого формирователя.
|
boolean |
isContextual()
Возвраты a
boolean указание, формирует ли этот формирователь контекстуально. |
void |
shape(char[] text, int start, int count)
Преобразовывает цифры в тексте, которые происходят между запуском и запускаются + количество.
|
void |
shape(char[] text, int start, int count, int context)
Преобразовывает цифры в тексте, которые происходят между запуском и запускаются + количество, используя обеспеченный контекст.
|
void |
shape(char[] text, int start, int count, NumericShaper.Range context)
Преобразовывает цифры в тексте, которые происходят между
start и start + count , использование обеспеченного context . |
Строка |
toString()
Возвраты a
String это описывает этот формирователь. |
public static final int EUROPEAN
public static final int ARABIC
public static final int EASTERN_ARABIC
public static final int DEVANAGARI
public static final int BENGALI
public static final int GURMUKHI
public static final int GUJARATI
public static final int ORIYA
public static final int TAMIL
public static final int TELUGU
public static final int KANNADA
public static final int MALAYALAM
public static final int THAI
public static final int LAO
public static final int TIBETAN
public static final int MYANMAR
public static final int ETHIOPIC
public static final int KHMER
public static final int MONGOLIAN
public static final int ALL_RANGES
Эта константа определяет все основанные на битовой маске диапазоны. Использовать EmunSet.allOf(NumericShaper.Range.class)
определить все основанные на перечислении диапазоны.
public static NumericShaper getShaper(int singleRange)
singleRange
- указанный диапазон UnicodeIllegalArgumentException
- если диапазон не является ни одним диапазономpublic static NumericShaper getShaper(NumericShaper.Range singleRange)
singleRange
- диапазон Unicode, данный a NumericShaper.Range
постоянный.NumericShaper
.NullPointerException
- если singleRange
null
public static NumericShaper getContextualShaper(int ranges)
NumericShaper.ARABIC | NumericShaper.THAI
. Формирователь принимает ЕВРОПЕЙЦА как запускающийся контекст, то есть, если с ЕВРОПЕЙСКИМИ цифрами встречаются перед любым сильным направленным текстом в строке контекст, как предполагают, является ЕВРОПЕЙСКИМ, и таким образом, цифры не будут формировать.ranges
- указанные диапазоны Unicodepublic static NumericShaper getContextualShaper(Set<NumericShaper.Range> ranges)
Формирователь принимает ЕВРОПЕЙЦА как запускающийся контекст, то есть, если с ЕВРОПЕЙСКИМИ цифрами встречаются перед любым сильным направленным текстом в строке контекст, как предполагают, является ЕВРОПЕЙСКИМ, и таким образом, цифры не будут формировать.
ranges
- указанные диапазоны UnicodeNullPointerException
- если ranges
null
.public static NumericShaper getContextualShaper(int ranges, int defaultContext)
NumericShaper.ARABIC | NumericShaper.THAI
. Формирователь использует defaultContext в качестве запускающегося контекста.ranges
- указанные диапазоны UnicodedefaultContext
- запускающийся контекст, такой как NumericShaper.EUROPEAN
IllegalArgumentException
- если указанное defaultContext
не ни один допустимый диапазон.public static NumericShaper getContextualShaper(Set<NumericShaper.Range> ranges, NumericShaper.Range defaultContext)
defaultContext
как запускающийся контекст.ranges
- указанные диапазоны UnicodedefaultContext
- запускающийся контекст, такой как NumericShaper.Range.EUROPEAN
NullPointerException
- если ranges
или defaultContext
null
public void shape(char[] text, int start, int count)
text
- массив символов, чтобы преобразоватьstart
- индекс в text
начинать преобразовыватьcount
- число символов в text
преобразоватьIndexOutOfBoundsException
- если запускаются или запускаются +, количество за пределыNullPointerException
- если текст является нулемpublic void shape(char[] text, int start, int count, int context)
text
- массив символовstart
- индекс в text
начинать преобразовыватьcount
- число символов в text
преобразоватьcontext
- контекст, в который можно преобразовать символы, такой как NumericShaper.EUROPEAN
IndexOutOfBoundsException
- если запускаются или запускаются +, количество за пределыNullPointerException
- если текст является нулемIllegalArgumentException
- если это - контекстный формирователь и указанное context
не ни один допустимый диапазон.public void shape(char[] text, int start, int count, NumericShaper.Range context)
start
и start + count
, использование обеспеченного context
. Context
игнорируется, если формирователь не является контекстным формирователем.text
- a char
массивstart
- индекс в text
начинать преобразовыватьcount
- число char
s в text
преобразоватьcontext
- контекст, в который можно преобразовать символы, такой как NumericShaper.Range.EUROPEAN
IndexOutOfBoundsException
- если start
или start + count
за пределыNullPointerException
- если text
или context
нульpublic boolean isContextual()
boolean
указание, формирует ли этот формирователь контекстуально.true
если этот формирователь является контекстным; false
иначе.public int getRanges()
int
это ORs вместе значения для всех диапазонов, которые будут сформированы. Например, чтобы проверить, формирует ли формирователь на арабский язык, Вы использовали бы следующее:
if ((shaper.getRanges() & shaper.ARABIC) != 0) { ...
Отметьте, что этот метод поддерживает только основанные на битовой маске диапазоны. Вызвать getRangeSet()
для основанных на перечислении диапазонов.
public Set<NumericShaper.Range> getRangeSet()
Set
представление всего Unicode располагается в этом NumericShaper
это будет сформировано.public int hashCode()
hashCode
в классе Object
Object.hashCode()
public boolean equals(Object o)
true
если указанный объект является экземпляром NumericShaper
и формы тождественно этому, независимо от представлений диапазона, битовой маски или перечисления. Например, следующий код производит "true"
. NumericShaper ns1 = NumericShaper.getShaper(NumericShaper.ARABIC); NumericShaper ns2 = NumericShaper.getShaper(NumericShaper.Range.ARABIC); System.out.println(ns1.equals(ns2));
equals
в классе Object
o
- указанный объект сравниться с этим NumericShaper
true
если o
экземпляр NumericShaper
и формы таким же образом; false
иначе.Object.equals(java.lang.Object)
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.