Spec-Zone.ru › OpenJDK 27

Класс CompactNumberFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
java.text.CompactNumberFormat
Все реализованные интерфейсы:
Serializable, Cloneable
public final class CompactNumberFormat extends NumberFormat

CompactNumberFormat — конкретный подкласс NumberFormat, который форматирует десятичное число в локализованном компактном представлении. Компактное форматирование чисел предназначено для условий, в которых доступно ограниченное пространство. Например, в US locale можно отображать форматированное число 7M вместо 7,000,000.00. Класс CompactNumberFormat определен спецификацией LDML для компактных форматов чисел.

Получение CompactNumberFormat

Чтобы получить компактный формат чисел, используйте один из перечисленных ниже способов.
  • Используйте фабричный метод NumberFormat.getCompactNumberInstance(), чтобы получить формат для локали по умолчанию со стилем SHORT.
  • Используйте фабричный метод NumberFormat.getCompactNumberInstance(Locale, Style), чтобы получить формат для другой локали и задать стиль.
  • Используйте один из конструкторов CompactNumberFormat, например CompactNumberFormat(decimalPattern, symbols, compactPatterns), чтобы получить CompactNumberFormat с дополнительными настройками.

Если нужен стандартный компактный формат для заданной локали и style, рекомендуется использовать один из перечисленных выше фабричных методов NumberFormat. Чтобы использовать метод экземпляра, определенный в CompactNumberFormat, перед приведением к CompactNumberFormat необходимо проверить тип NumberFormat, возвращенного этими фабричными методами. Если установленная реализация службы с учетом локали не поддерживает заданную Locale, выполняется поиск по цепочке родительских локалей и используется поддерживаемая Locale.

Стиль

При использовании NumberFormat.getCompactNumberInstance(Locale, Style) компактное представление можно получить в стиле SHORT или LONG. Например, экземпляр компактного формата чисел в стиле SHORT для локали US locale форматирует 10000 как "10K". Однако экземпляр в стиле LONG для той же локали форматирует 10000 как "10 thousand".

Использование CompactNumberFormat

Ниже приведен пример локализованного форматирования и разбора:
NumberFormat compactFormat = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
compactFormat.format(1000); // returns "1K"
compactFormat.parse("1K"); // returns 1000

Форматирование

По умолчанию возвращается форматированная строка без дробных цифр, однако для включения дробной части можно использовать метод setMinimumFractionDigits(int). Число 1000.0 или 1000 форматируется как "1K", а не как "1.00K" (в локали US locale). Поэтому предоставленные шаблоны форматирования содержат только минимальное количество целых цифр, префикс и/или суффикс, но не дробную часть. Например, используются шаблоны {"", "", "", 0K, 00K, ...}. Если выбранный для форматирования числа шаблон — "0" (специальный шаблон), независимо от того, задан ли он явно или выбран по умолчанию, используется общее форматирование чисел, предоставляемое DecimalFormat для указанной локали.

Округление

CompactNumberFormat предоставляет для форматирования режимы округления, определенные в RoundingMode. По умолчанию используется RoundingMode.HALF_EVEN.

Разбор

По умолчанию при разборе не допускается разделитель групп разрядов, пока использование группировки не будет включено с помощью метода setGroupingUsed(boolean), установившего значение true. Разбор дробной части зависит от параметра isParseIntegerOnly(). Например, если для разбора заданы только целые числа, дробная часть пропускается.

Шаблоны компактных чисел

compactPatterns в CompactNumberFormat(decimalPattern, symbols, compactPatterns) представлены в виде набора строк, каждая из которых является pattern, используемым для форматирования диапазона чисел.

Пример шаблонов компактных чисел в стиле SHORT для локали US locale — {"", "", "", "0K", "00K", "000K", "0M", "00M", "000M", "0B", "00B", "000B", "0T", "00T", "000T"}; диапазон значений — от 100 до 1014. Шаблонов может быть любое количество, и их индексы строго соответствуют диапазонам, начиная с 100. Например, в приведенном выше наборе шаблон с индексом 3 ("0K") используется для форматирования чисел в диапазоне 1000 <= number < 10000, шаблон с индексом 4 ("00K") — для форматирования чисел в диапазоне 10000 <= number < 100000 и так далее.

В большинстве локалей шаблоны для диапазона 100-102 представляют собой пустые строки, что подразумевает использование специального шаблона "0". Специальный шаблон "0" используется для любого диапазона, для которого не задан компактный шаблон. Этот специальный шаблон можно явно задать для любого конкретного диапазона либо считать шаблоном по умолчанию для пустой строки.

Отрицательные подшаблоны

Компактный шаблон содержит положительный и отрицательный подшаблоны, разделенные символом границы подшаблонов ';', например "0K;-0K". Каждый подшаблон содержит префикс, минимальное количество целых цифр и суффикс. Отрицательный подшаблон необязателен; если он отсутствует, в качестве отрицательного подшаблона используется положительный подшаблон с префиксом в виде знака минуса '-' (U+002D HYPHEN-MINUS). То есть один шаблон "0K" эквивалентен шаблону "0K;-0K". Если отрицательный подшаблон задан явно, он определяет только отрицательные префикс и суффикс. Минимальное количество целых цифр и остальные характеристики совпадают с положительным шаблоном. Это означает, что "0K;-00K" работает точно так же, как "0K;-0K". В режиме lenient parsing включено нестрогое сопоставление шаблона знака минуса согласно спецификации нестрогого сопоставления LDML.

Экранирование специальных символов

Многие символы в компактном шаблоне интерпретируются буквально: при разборе они сопоставляются как есть, а при форматировании выводятся без изменений. Специальные символы, напротив, обозначают другие символы, строки или классы символов. Если такие символы должны использоваться в префиксе или суффиксе как литералы, их необходимо заключать в одинарные кавычки ' (U+0027), если не указано иное. Например, 0क'.'.

Формы множественного числа

CompactNumberFormat поддерживают шаблоны как для форм единственного, так и для форм множественного числа компактного представления. Для формы множественного числа Pattern должен состоять из PluralPattern(ов), разделенных пробелом ' ' (U+0020) и заключенных в фигурные скобки '{' (U+007B) и '}' (U+007D). В этом формате каждый PluralPattern состоит из count, за которым следуют двоеточие ':' (U+003A) и SimplePattern. Поскольку пробел используется для разделения последующих PluralPattern, чтобы использовать его буквально в prefix или suffix, его необходимо заключить в кавычки.

Например, шаблон для миллионов (106 ) в локали США можно задать как SimplePattern: "0 Million", а для немецкой локали — как PluralPattern: "{one:0' 'Million other:0' 'Millionen}".

Компактный шаблон имеет следующий синтаксис, где count следует правилам формирования форм множественного числа LDML:

Pattern:
        SimplePattern
        '{' PluralPattern [' ' PluralPattern]optional '}'
SimplePattern:
        PositivePattern
        PositivePattern [; NegativePattern]optional
PluralPattern:
        Count:SimplePattern
Count:
        "zero" / "one" / "two" / "few" / "many" / "other"
PositivePattern:
        Prefixoptional MinimumInteger Suffixoptional
NegativePattern:
       Prefixoptional MinimumInteger Suffixoptional
Prefix:
     Any characters except the special pattern characters
Suffix:
     Any characters except the special pattern characters
MinimumInteger:
     0
     0 MinimumInteger
Начиная с:
12
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)
См. также:
  • NumberFormat.Style
  • NumberFormat
  • DecimalFormat
  • Locale
  • Форма сериализации

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

Вложенные классы/интерфейсы, объявленные в классе NumberFormat

NumberFormat.Field, NumberFormat.Style
Модификатор и тип Класс Описание
static class  NumberFormat.Field
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator, возвращаемом из NumberFormat.formatToCharacterIterator, и в качестве идентификаторов полей в FieldPosition.
static enum  NumberFormat.Style
Стиль формата числа.

Краткое описание полей

Поля, объявленные в классе NumberFormat

FRACTION_FIELD, INTEGER_FIELD
Модификатор и тип Поле Описание
static final int FRACTION_FIELD
Константа поля, используемая для создания объекта FieldPosition.
static final int INTEGER_FIELD
Константа поля, используемая для создания объекта FieldPosition.

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

Конструктор Описание
CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns)
Создает CompactNumberFormat с использованием заданных десятичного шаблона, символов десятичного формата и компактных шаблонов.
CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns, String pluralRules)
Создает CompactNumberFormat с использованием заданных десятичного шаблона, символов десятичного формата, компактных шаблонов и правил множественного числа.

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

Модификатор и тип Метод Описание
CompactNumberFormat clone()
Создает и возвращает копию этого экземпляра CompactNumberFormat.
boolean equals(Object obj)
Сравнивает указанный объект с этим CompactNumberFormat на равенство.
StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Форматирует значение типа double, создавая строку, представляющую его компактную форму.
StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
Форматирует значение типа long, создавая строку, представляющую его компактную форму.
final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition fieldPosition)
Форматирует число, создавая строку, представляющую его компактную форму.
AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator.
int getGroupingSize()
Возвращает размер группировки.
RoundingMode getRoundingMode()
Возвращает используемый в этом CompactNumberFormat режим RoundingMode.
int hashCode()
Возвращает хеш-код этого CompactNumberFormat.
boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка.
boolean isParseBigDecimal()
Возвращает значение, указывающее, возвращает ли метод parse(String, ParsePosition) значение BigDecimal.
boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает только целую часть компонента числа в компактном числе.
boolean isStrict()
Возвращает true, если этот формат разбирает числа строго, и false в противном случае.
Number parse(String text, ParsePosition pos)
Разбирает текст от начала заданной строки и создает Number.
void setGroupingSize(int newValue)
Задает размер группировки.
void setGroupingUsed(boolean newValue)
Задает, будет ли в этом формате использоваться группировка.
void setMaximumFractionDigits(int newValue)
Задает максимальное количество цифр в дробной части числа при форматировании.
void setMaximumIntegerDigits(int newValue)
Задает максимальное количество цифр в целой части числа при форматировании.
void setMinimumFractionDigits(int newValue)
Задает минимальное количество цифр в дробной части числа при форматировании.
void setMinimumIntegerDigits(int newValue)
Задает минимальное количество цифр в целой части числа при форматировании.
void setParseBigDecimal(boolean newValue)
Задает, будет ли метод parse(String, ParsePosition) возвращать значение BigDecimal.
void setParseIntegerOnly(boolean value)
Задает, будет ли этот формат разбирать только целую часть компонента числа в компактном числе.
void setRoundingMode(RoundingMode roundingMode)
Задает используемый в этом CompactNumberFormat режим RoundingMode.
void setStrict(boolean strict)
Изменяет значение параметра нестрогого разбора.
String toString()
Возвращает строку, идентифицирующую этот CompactNumberFormat, для отладки.

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

format, format, getAvailableLocales, getCompactNumberInstance, getCompactNumberInstance, getCurrency, getCurrencyInstance, getCurrencyInstance, getInstance, getInstance, getIntegerInstance, getIntegerInstance, getMaximumFractionDigits, getMaximumIntegerDigits, getMinimumFractionDigits, getMinimumIntegerDigits, getNumberInstance, getNumberInstance, getPercentInstance, getPercentInstance, parse, parseObject, setCurrency
Модификатор и тип Метод Описание
final String format(double number)
Специализация метода format.
final String format(long number)
Специализация метода format.
static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы get*Instance этого класса могут возвращать локализованные экземпляры.
static NumberFormat getCompactNumberInstance()
Возвращает компактный формат чисел для локали FORMAT по умолчанию со стилем формата "SHORT".
static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
Возвращает компактный формат чисел для указанной locale и formatStyle.
Currency getCurrency()
Возвращает валюту, используемую этим форматом чисел при форматировании денежных значений.
static final NumberFormat getCurrencyInstance()
Возвращает формат валюты для текущей локали FORMAT по умолчанию.
static NumberFormat getCurrencyInstance(Locale inLocale)
Возвращает формат валюты для указанной локали.
static final NumberFormat getInstance()
Возвращает формат чисел общего назначения для текущей локали FORMAT по умолчанию.
static NumberFormat getInstance(Locale inLocale)
Возвращает формат чисел общего назначения для указанной локали.
static final NumberFormat getIntegerInstance()
Возвращает целочисленный формат чисел для текущей локали FORMAT по умолчанию.
static NumberFormat getIntegerInstance(Locale inLocale)
Возвращает целочисленный формат чисел для указанной локали.
int getMaximumFractionDigits()
Возвращает максимальное количество цифр в дробной части числа при форматировании.
int getMaximumIntegerDigits()
Возвращает максимальное количество цифр в целой части числа при форматировании.
int getMinimumFractionDigits()
Возвращает минимальное количество цифр в дробной части числа при форматировании.
int getMinimumIntegerDigits()
Возвращает минимальное количество цифр в целой части числа при форматировании.
static final NumberFormat getNumberInstance()
Возвращает формат чисел общего назначения для текущей локали FORMAT по умолчанию.
static NumberFormat getNumberInstance(Locale inLocale)
Возвращает формат чисел общего назначения для указанной локали.
static final NumberFormat getPercentInstance()
Возвращает процентный формат для текущей локали FORMAT по умолчанию.
static NumberFormat getPercentInstance(Locale inLocale)
Возвращает процентный формат для указанной локали.
Number parse(String source)
Разбирает текст от начала заданной строки и создает Number.
final Object parseObject(String source, ParsePosition pos)
Разбирает текст из заданной строки и создает объект.
void setCurrency(Currency currency)
Задает валюту, используемую этим форматом чисел при форматировании денежных значений.

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

format, parseObject
Модификатор и тип Метод Описание
final String format(Object obj)
Форматирует объект, создавая строку.
Object parseObject(String source)
Разбирает текст от начала заданной строки и создает объект.

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

finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected void finalize()
Устарело, будет удалено: этот элемент API может быть удален в будущей версии.
Метод финализации устарел и будет удален в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

CompactNumberFormat

public CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns)
Создает CompactNumberFormat с использованием заданного десятичного шаблона, символов десятичного формата и компактных шаблонов. Чтобы получить экземпляр CompactNumberFormat со стандартными компактными шаблонами для Locale и Style, рекомендуется использовать фабричные методы, предоставляемые NumberFormat для компактного форматирования чисел.

Ниже приведен пример использования конструктора:

String[] compactPatterns = {"", "", "", "a lot"};
NumberFormat fmt = new CompactNumberFormat("00", DecimalFormatSymbols.getInstance(Locale.US), compactPatterns);
fmt.format(1); // returns "01"
fmt.format(1000); // returns "a lot"
Параметры:
decimalPattern — десятичный шаблон для форматирования чисел общего назначения
symbols — набор используемых символов
compactPatterns — массив компактных шаблонов чисел
Исключения:
NullPointerException — если какой-либо из заданных аргументов равен null
IllegalArgumentException — если заданный decimalPattern или массив compactPatterns содержит недопустимый шаблон либо если null встречается в массиве компактных шаблонов
См. также:
  • DecimalFormat(java.lang.String, DecimalFormatSymbols)
  • DecimalFormatSymbols

CompactNumberFormat

public CompactNumberFormat(String decimalPattern, DecimalFormatSymbols symbols, String[] compactPatterns, String pluralRules)
Создает CompactNumberFormat с использованием заданного десятичного шаблона, символов десятичного формата, компактных шаблонов и правил множественного числа. Чтобы получить экземпляр CompactNumberFormat со стандартными компактными шаблонами для Locale, Style и pluralRules, рекомендуется использовать фабричные методы, предоставляемые NumberFormat для компактного форматирования чисел. Например, NumberFormat.getCompactNumberInstance(Locale, Style).
Параметры:
decimalPattern — десятичный шаблон для форматирования чисел общего назначения
symbols — набор используемых символов
compactPatterns — массив компактных шаблонов чисел
pluralRules — строка, задающая правила множественного числа, связывающие ключевое слово Count, например «one», с фактическим целым числом. Синтаксис определен в документе Unicode Consortium «Синтаксис правил множественного числа»
Исключения:
NullPointerException — если какой-либо из заданных аргументов равен null
IllegalArgumentException — если заданный decimalPattern, массив compactPatterns содержит недопустимый шаблон, null встречается в массиве компактных шаблонов либо заданный pluralRules имеет недопустимый синтаксис
С версии:
14
Внешние спецификации
  • Язык разметки данных локали Unicode (LDML)
См. также:
  • DecimalFormat(java.lang.String, DecimalFormatSymbols)
  • DecimalFormatSymbols

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

format

public final StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition fieldPosition)
Форматирует число, создавая строку, представляющую его компактную форму. Число может быть экземпляром любого подкласса Number.
Переопределяет:
format в классе NumberFormat
Параметры:
number — число для форматирования
toAppendTo — StringBuffer, к которому добавляется отформатированный текст
fieldPosition — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 123456789 в US locale, если заданный fieldPosition — это NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 3 для выходной строки 123M. Аналогичным образом позиции полей префикса и суффикса можно получить с помощью NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.
Возвращает:
переданный StringBuffer в качестве toAppendTo
Исключения:
IllegalArgumentException — если number равен null или не является экземпляром Number
NullPointerException — если toAppendTo или fieldPosition равен null
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

format

public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition)
Форматирует число типа double, создавая строку, представляющую его компактную форму.
Определено в:
format в классе NumberFormat
Параметры:
number — число типа double для форматирования
result — место, куда добавляется текст
fieldPosition — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 1234567.89 в US locale, если заданный fieldPosition — это NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 1 для выходной строки 1M. Аналогичным образом позиции полей префикса и суффикса можно получить с помощью NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.
Возвращает:
переданный StringBuffer в качестве result
Исключения:
NullPointerException — если result или fieldPosition равен null
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

format

public StringBuffer format(long number, StringBuffer result, FieldPosition fieldPosition)
Форматирует число типа long, создавая строку, представляющую его компактную форму.
Определено в:
format в классе NumberFormat
Параметры:
number — число типа long для форматирования
result — место, куда добавляется текст
fieldPosition — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 123456789 в US locale, если заданный fieldPosition — это NumberFormat.INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены соответственно в 0 и 3 для выходной строки 123M. Аналогичным образом позиции полей префикса и суффикса можно получить с помощью NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.
Возвращает:
переданный StringBuffer в качестве result
Исключения:
NullPointerException — если result или fieldPosition равен null
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object obj)
Форматирует объект, создавая AttributedCharacterIterator. Возвращенный AttributedCharacterIterator можно использовать для построения результирующей строки, а также для получения сведений о ней.

Каждый ключ атрибута AttributedCharacterIterator будет иметь тип NumberFormat.Field, а значение атрибута будет совпадать с ключом атрибута. Части префикса и суффикса возвращенного итератора (если они есть) представлены атрибутами NumberFormat.Field.PREFIX и NumberFormat.Field.SUFFIX соответственно.

Переопределяет:
formatToCharacterIterator в классе Format
Параметры:
obj — объект для форматирования
Возвращает:
AttributedCharacterIterator, описывающий отформатированное значение
Исключения:
NullPointerException — если obj равен null
IllegalArgumentException — если Format не может отформатировать заданный объект
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY

parse

public Number parse(String text, ParsePosition pos)
Разбирает текст с начала заданной строки и возвращает Number.

Этот метод пытается разобрать текст, начиная с индекса, заданного объектом ParsePosition. Если разбор выполнен успешно, индекс ParsePosition обновляется до индекса после последнего использованного символа (при разборе необязательно используются все символы до конца строки), а разобранное число возвращается. Обновленный ParsePosition можно использовать, чтобы указать начальную позицию для следующего вызова этого метода. Если возникает ошибка, индекс ParsePosition не изменяется, индекс ошибки в ParsePosition устанавливается в позицию символа, на котором произошла ошибка, и возвращается null.

Этот метод возвращает Long, если это возможно (например, значение находится в диапазоне [Long.MIN_VALUE, Long.MAX_VALUE] и не содержит дробной части), в противном случае возвращает Double.

Возвращаемое значение — числовая часть заданного текста, умноженная на числовой эквивалент присоединенного аффикса (например, «K» = 1000 в US locale).

CompactNumberFormat может соответствовать префиксу/суффиксу по умолчанию или компактному префиксу/суффиксу; оба варианта взаимозаменяемы.

Разбор может выполняться в строгом или нестрогом режиме; по умолчанию используется нестрогий режим.

В нестрогом режиме разбор завершается неудачей, если префикс и/или суффикс непусты и не могут быть найдены из-за преждевременного окончания разбора либо если первый символ после префикса не удается разобрать.

В строгом режиме разбор завершается неудачей в text в следующих случаях:

  • Не найден префикс по умолчанию или компактный префикс. Например, префикс Locale.US валютного формата: «$»
  • Не найден суффикс по умолчанию или компактный суффикс. Например, компактный суффикс Locale.US NumberFormat.Style.SHORT: «K»
  • isGroupingUsed() возвращает false, а разделитель групп разрядов присутствует
  • isGroupingUsed() возвращает true, а getGroupingSize() не соблюдается
  • isParseIntegerOnly() возвращает true, а десятичный разделитель присутствует
  • isGroupingUsed() возвращает true, а isParseIntegerOnly() возвращает false, и разделитель групп разрядов находится после десятичного разделителя
  • Обнаружены другие символы, которые не являются ожидаемыми символами или цифрами, входящими в числовую часть

В нестрогом режиме знак минус в negative subpatterns приблизительно сопоставляется со знаками минуса, допустимыми в нестрогом режиме.

Тип возвращаемого подкласса зависит от значения isParseBigDecimal().

  • Если isParseBigDecimal() имеет значение false (по умолчанию), большинство целых значений возвращаются как объекты Long независимо от способа их записи: и "17K", и "17.000K" разбираются как Long.valueOf(17000). Если значение не помещается в Long, результат возвращается как Double. Сюда входят значения с дробной частью, бесконечные значения, NaN и значение -0.0.

    Вызывающий код может использовать методы Number, такие как doubleValue, longValue и т. д., чтобы получить нужный тип.

  • Если isParseBigDecimal() имеет значение true, значения возвращаются как объекты BigDecimal. Особые значения — отрицательная и положительная бесконечность и NaN — возвращаются как экземпляры Double, содержащие значения соответствующих констант Double.

CompactNumberFormat разбирает все символы Unicode, представляющие десятичные цифры, как определено в Character.digit(). Кроме того, CompactNumberFormat также распознает как цифры десять последовательных символов, начиная с локализованной цифры ноль, заданной в объекте DecimalFormatSymbols.

Разбор с помощью CompactNumberFormat не поддерживает научную нотацию. Например, разбор строки "1.05E4K" в US locale остановится на символе «E» и вернет 1.05.

Определено в:
parse в классе NumberFormat
Параметры:
text — строка для разбора
pos — объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше
Возвращает:
разобранное значение или null, если разбор завершился неудачно
Исключения:
NullPointerException — если text или pos равен null
См. также:
  • NumberFormat.isStrict()

setMaximumIntegerDigits

public void setMaximumIntegerDigits(int newValue)
Устанавливает максимальное количество цифр в целой части числа при форматировании. maximumIntegerDigits должно быть ≥ minimumIntegerDigits. Если новое значение maximumIntegerDigits меньше текущего значения minimumIntegerDigits, то minimumIntegerDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимое количество цифр в целой части — 309; если newValue > 309, максимальное количество цифр в целой части устанавливается в 309.

Переопределяет:
setMaximumIntegerDigits в классе NumberFormat
Параметры:
newValue — максимальное количество отображаемых цифр в целой части.
См. также:
  • NumberFormat.getMaximumIntegerDigits()

setMinimumIntegerDigits

public void setMinimumIntegerDigits(int newValue)
Устанавливает минимальное количество цифр в целой части числа при форматировании. minimumIntegerDigits должно быть ≤ maximumIntegerDigits. Если новое значение minimumIntegerDigits превышает текущее значение maximumIntegerDigits, то maximumIntegerDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимое количество цифр в целой части — 309; если newValue > 309, минимальное количество цифр в целой части устанавливается в 309.

Переопределяет:
setMinimumIntegerDigits в классе NumberFormat
Параметры:
newValue — минимальное количество отображаемых цифр в целой части.
См. также:
  • NumberFormat.getMinimumIntegerDigits()

setMinimumFractionDigits

public void setMinimumFractionDigits(int newValue)
Устанавливает минимальное количество цифр в дробной части числа при форматировании. minimumFractionDigits должно быть ≤ maximumFractionDigits. Если новое значение minimumFractionDigits превышает текущее значение maximumFractionDigits, то maximumFractionDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимое количество цифр в дробной части — 340; если newValue > 340, минимальное количество цифр в дробной части устанавливается в 340.

Переопределяет:
setMinimumFractionDigits в классе NumberFormat
Параметры:
newValue — минимальное количество отображаемых цифр в дробной части.
См. также:
  • NumberFormat.getMinimumFractionDigits()

setMaximumFractionDigits

public void setMaximumFractionDigits(int newValue)
Устанавливает максимальное количество цифр в дробной части числа при форматировании. maximumFractionDigits должно быть ≥ minimumFractionDigits. Если новое значение maximumFractionDigits меньше текущего значения minimumFractionDigits, то minimumFractionDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.

Максимально допустимое количество цифр в дробной части — 340; если newValue > 340, максимальное количество цифр в дробной части устанавливается в 340.

Переопределяет:
setMaximumFractionDigits в классе NumberFormat
Параметры:
newValue — максимальное количество отображаемых цифр в дробной части.
См. также:
  • NumberFormat.getMaximumFractionDigits()

getRoundingMode

public RoundingMode getRoundingMode()
Возвращает используемый в этом CompactNumberFormat режим RoundingMode.
Переопределяет:
getRoundingMode в классе NumberFormat
Возвращает:
RoundingMode, используемый для этого CompactNumberFormat
См. также:
  • setRoundingMode(RoundingMode)

setRoundingMode

public void setRoundingMode(RoundingMode roundingMode)
Устанавливает используемый в этом CompactNumberFormat режим RoundingMode.
Переопределяет:
setRoundingMode в классе NumberFormat
Параметры:
roundingMode — используемый RoundingMode
Исключения:
NullPointerException — если roundingMode равен null
См. также:
  • getRoundingMode()

getGroupingSize

public int getGroupingSize()
Возвращает размер группировки. Размер группировки — это количество цифр между разделителями групп разрядов в целой части числа. Например, в компактном числе "12,347 trillion" для US locale размер группировки равен 3.
Возвращает:
размер группировки
См. также:
  • setGroupingSize(int)
  • NumberFormat.isGroupingUsed()
  • DecimalFormatSymbols.getGroupingSeparator()

setGroupingSize

public void setGroupingSize(int newValue)
Устанавливает размер группировки. Размер группировки — это количество цифр между разделителями групп разрядов в целой части числа. Например, в компактном числе "12,347 trillion" для US locale размер группировки равен 3. Размер группировки должен быть от 0 до 127 включительно.
Параметры:
newValue — новый размер группировки
Исключения:
IllegalArgumentException — если newValue отрицательно или больше 127
См. также:
  • getGroupingSize()
  • NumberFormat.setGroupingUsed(boolean)
  • DecimalFormatSymbols.setGroupingSeparator(char)

isGroupingUsed

public boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка. Например, при включенной группировке и размере группировки 3 число 12346567890987654 можно отформатировать как "12,347 trillion" в US locale. Разделитель групп разрядов зависит от локали.
Переопределяет:
isGroupingUsed в классе NumberFormat
Возвращает:
true, если группировка используется; в противном случае — false
См. также:
  • setGroupingUsed(boolean)

setGroupingUsed

public void setGroupingUsed(boolean newValue)
Задает, будет ли в этом формате использоваться группировка.
Переопределяет:
setGroupingUsed в классе NumberFormat
Параметры:
newValue — true, если группировка используется; в противном случае — false
См. также:
  • isGroupingUsed()

isParseIntegerOnly

public boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает из числовой части компактного числа только целое число. При разборе целого числа из числовой части учитывается только целое число, при этом префикс/суффикс по-прежнему учитывается для вычисления результата. Например, в US locale, если этот метод возвращает true, строка "1234.78 thousand" будет разобрана как значение 1234000 (1234 (целая часть) * 1000 (тысяча)), а дробная часть будет пропущена. Точный формат, принимаемый при разборе, зависит от локали.
Переопределяет:
isParseIntegerOnly в классе NumberFormat
Требования к реализации:
Эта реализация устанавливает индекс ParsePosition не в позицию десятичного символа, а в конец строки.
Возвращает:
true, если компактные числа следует разбирать только как целые; в противном случае — false

setParseIntegerOnly

public void setParseIntegerOnly(boolean value)
Задает, будет ли этот формат разбирать из числовой части компактного числа только целое число.
Переопределяет:
setParseIntegerOnly в классе NumberFormat
Параметры:
value — true, если компактные числа следует разбирать только как целые; в противном случае — false
См. также:
  • isParseIntegerOnly()

isStrict

public boolean isStrict()
Возвращает true, если этот формат разбирает числа в строгом режиме; в противном случае — false.
Переопределяет:
isStrict в классе NumberFormat
Возвращает:
true, если этот формат разбирает числа в строгом режиме; в противном случае — false
С версии:
23
См. также:
  • setStrict(boolean)
  • parse(String, ParsePosition)

setStrict

public void setStrict(boolean strict)
Изменяет степень строгости разбора. Разбор может выполняться в строгом или нестрогом режиме; по умолчанию используется нестрогий режим.
Переопределяет:
setStrict в классе NumberFormat
Параметры:
strict — true, если разбор следует выполнять в строгом режиме; в противном случае — false
С версии:
23
См. также:
  • isStrict()
  • parse(String, ParsePosition)

isParseBigDecimal

public boolean isParseBigDecimal()
Возвращает информацию о том, возвращает ли метод parse(String, ParsePosition) значение BigDecimal. По умолчанию это значение равно false.
Возвращает:
true, если метод разбора возвращает BigDecimal; в противном случае — false
См. также:
  • setParseBigDecimal(boolean)

setParseBigDecimal

public void setParseBigDecimal(boolean newValue)
Задает, будет ли метод parse(String, ParsePosition) возвращать значение BigDecimal.
Параметры:
newValue — true, если метод разбора возвращает BigDecimal; в противном случае — false
См. также:
  • isParseBigDecimal()

equals

public boolean equals(Object obj)
Сравнивает указанный объект с этим CompactNumberFormat на равенство. Возвращает true, если объект также является CompactNumberFormat и оба формата одинаково форматируют любое значение.
Переопределяет:
equals в классе NumberFormat
Требования к реализации:
Этот метод проверяет равенство, определяя идентичность класса на основе getClass(), а не instanceof. Поэтому в методах equals подклассов ни один экземпляр этого класса не должен считаться равным экземпляру подкласса.
Параметры:
obj — объект для сравнения
Возвращает:
true, если этот объект равен другому CompactNumberFormat
См. также:
  • Object.hashCode()

hashCode

public int hashCode()
Возвращает хеш-код этого CompactNumberFormat.
Переопределяет:
hashCode в классе NumberFormat
Требования к реализации:
Для вычисления значения хеш-кода используются нетранзиентные поля экземпляра этого класса; полученное значение соответствует контракту, определённому в Objects.hashCode(Object)
Возвращает:
хеш-код этого CompactNumberFormat
См. также:
  • Object.hashCode()

toString

public String toString()
Возвращает строку, идентифицирующую этот CompactNumberFormat, для отладки.
Переопределяет:
toString в классе Object
Возвращает:
строку, идентифицирующую этот CompactNumberFormat, для отладки

clone

public CompactNumberFormat clone()
Создаёт и возвращает копию этого экземпляра CompactNumberFormat.
Переопределяет:
clone в классе NumberFormat
Возвращает:
клон этого экземпляра
См. также:
  • Cloneable

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания, предназначенные для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, 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.

Spec-Zone.ru

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