Spec-Zone.ru › OpenJDK 27

Класс NumberFormat

java.lang.Object
java.text.Format
java.text.NumberFormat
Все реализуемые интерфейсы:
Serializable, Cloneable
Прямые известные подклассы:
ChoiceFormat, CompactNumberFormat, DecimalFormat
public abstract class NumberFormat extends Format
NumberFormat — абстрактный базовый класс для всех форматов чисел. Этот класс предоставляет интерфейс для форматирования и разбора чисел с учетом локали. Это позволяет создавать код, полностью независимый от правил локали, касающихся десятичных разделителей, разделителей групп разрядов, используемых десятичных цифр и даже того, является ли формат числа десятичным. Например, этот класс можно использовать в приложении для вывода числа в денежном формате согласно правилам требуемой локали.

Получение NumberFormat

Чтобы получить NumberFormat для локали по умолчанию, используйте один из статических фабричных методов, возвращающих конкретный подкласс NumberFormat. В следующих форматах приведен пример форматирования Number "2000.50" с локалью US в качестве локали по умолчанию.
  • Используйте getInstance() или getNumberInstance(), чтобы получить десятичный формат. Например, "2,000.5".
  • Используйте getIntegerInstance(), чтобы получить формат целых чисел. Например, "2,000".
  • Используйте getCurrencyInstance(), чтобы получить денежный формат чисел. Например, "$2,000.50".
  • Используйте getCompactNumberInstance(), чтобы получить компактный числовой формат. Например, "2K".
  • Используйте getPercentInstance(), чтобы получить формат для отображения процентов. Например, "200,050%".
Если требуется NumberFormat для другой локали, можно также использовать одну из перегруженных фабричных методов, принимающих Locale в качестве параметра, например, getIntegerInstance(Locale). Если установленная реализация службы, учитывающей локаль, не поддерживает указанную Locale, будет выполнен поиск по цепочке родительских локалей и использована Locale, которая поддерживается.

Расширения локали

Поведение форматирования можно изменить при использовании локали, содержащей любое из следующих расширений Unicode:
  • "nu" ( система нумерации) — переопределяет используемые десятичные цифры
  • "rg" ( переопределение региона) — переопределяет используемую страну
  • "cf" ( стиль денежного формата) — переопределяет используемый стиль денежного формата
  • "cu" ( тип валюты) — переопределяет используемую валюту

Если "nu" и "cu" указаны вместе с "rg", соответствующие значения из расширений "nu" и "cu" имеют приоритет над неявными значениями из расширения "rg". Хотя в расширениях Unicode определены различные ключи и значения, фактические реализации служб, учитывающих локаль, в среде выполнения Java могут не поддерживать те или иные атрибуты локали Unicode или пары ключ/тип.

Ниже приведен пример денежного формата для локали "US" со стилем бухгалтерского учета:

NumberFormat.getCurrencyInstance(Locale.forLanguageTag("en-US-u-cf-account"));
В этом стиле отрицательное значение форматируется в скобках, а не с предшествующим знаком минус.

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

Ниже приведен пример форматирования и разбора с учетом локали:
NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.US);
currencyFormat.format(100000); // returns "$100,000.00"
currencyFormat.parse("$100,000.00"); // returns 100000

Настройка NumberFormat

NumberFormat предоставляет API для настройки поведения форматирования и разбора:
  • setParseIntegerOnly(boolean); если true, метод возвращает только целую часть числа, разобранного из строки.
  • setMinimumFractionDigits(int); используется для настройки ожидаемого количества цифр при форматировании. Аналогичным образом используйте любые другие методы установки минимального/максимального количества цифр или количества дробных/целых цифр. Эти методы не влияют на разбор.
  • setGroupingUsed(boolean); если true, форматированные числа будут отображаться с разделителями групп разрядов. Кроме того, если false, при разборе не будут ожидаться разделители групп разрядов в разбираемой строке.
  • setStrict(boolean); если true, разбор выполняется строго. Поведение строгого разбора описывается в реализующем NumberFormat подклассе.

Чтобы получить больше возможностей управления форматированием или разбором, можно проверить тип и безопасно преобразовать объект к реализующему подклассу NumberFormat; это дает доступ к дополнительным методам, определенным подклассом. Например:

NumberFormat nFmt = NumberFormat.getInstance(Locale.US);
if (nFmt instanceof DecimalFormat dFmt) {
    dFmt.setDecimalSeparatorAlwaysShown(true);
    dFmt.format(100); // returns "100."
}
Возвращаемый фабричными методами подкласс NumberFormat зависит от установленной реализации поставщика службы локалей и не всегда может быть DecimalFormat или CompactNumberFormat.

Можно также использовать формы методов parse и format с ParsePosition и FieldPosition, чтобы:

  • Последовательно разбирать части строки
  • Выравнивать десятичный разделитель и другие элементы
Например, числа можно выровнять двумя способами:
  1. Если используется моноширинный шрифт с интервалами для выравнивания, передайте FieldPosition в вызов формата, указав field = INTEGER_FIELD. При выводе getEndIndex будет установлено в смещение между последним символом целой части и десятичным разделителем. Добавьте в начало строки (требуемое количество пробелов — getEndIndex) пробелов.
  2. Если используется пропорциональный шрифт, вместо добавления пробелов измерьте ширину строки в пикселях от начала до getEndIndex. Затем перед выводом текста сдвиньте перо на (требуемая ширина в пикселях — ширина до точки выравнивания). Это также работает, если десятичного разделителя нет, но в конце могут быть дополнительные символы, например скобки в отрицательных числах: "(12)" для -12.

Нестрогий разбор

NumberFormat по умолчанию выполняет разбор в нестрогом режиме. Подклассы могут реализовать строгий разбор и, соответственно, переопределить и предоставить реализации необязательных методов isStrict() и setStrict(boolean).

Нестрогий разбор следует использовать, если нужно извлечь число из строки, содержащей нечисловые значения или значения, не связанные с форматом. Например, с помощью денежного формата Locale.US можно извлечь число 1000 из строки "$1,000.00 was paid". Нестрогий разбор также допускает неточное сопоставление символов исходного текста. Например, реализация класса NumberFormat может допускать сопоставление "−" (U+2212 MINUS SIGN) с символом шаблона "-" (U+002D HYPHEN-MINUS), используемым в качестве префикса отрицательного числа.

Строгий разбор следует использовать, если нужно убедиться, что строка в точности соответствует правилам локали, и, таким образом, проверить входные данные. Например, успешный разбор числа 1000.55 из строки "1.000,55" подтверждает, что строка в точности соответствует числовым правилам локали Locale.GERMANY.

Синхронизация

Форматы чисел обычно не являются синхронизированными. Рекомендуется создавать отдельный экземпляр формата для каждого потока. Если несколько потоков одновременно обращаются к одному формату, синхронизацию необходимо выполнять извне.
Требования к реализации:
Обработка параметров null
  • Методы format(double, StringBuffer, FieldPosition), format(long, StringBuffer, FieldPosition) и parse(String, ParsePosition) могут выбрасывать NullPointerException, если какой-либо из их параметров равен null. Подкласс может предоставить собственную реализацию и спецификацию обработки NullPointerException.
Режим округления по умолчанию
  • Реализация по умолчанию предоставляет режимы округления чисел, определенные в RoundingMode. Используется алгоритм округления к ближайшему четному. Чтобы изменить режим округления, используйте setRoundingMode. NumberFormat, возвращаемый статическими фабричными методами, настроен на округление чисел с плавающей точкой к ближайшему четному (см. RoundingMode.HALF_EVEN) при форматировании.
Начиная с версии:
1.1
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)
См. также:
  • DecimalFormat
  • ChoiceFormat
  • CompactNumberFormat
  • Locale
  • Сериализованная форма

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

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

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

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

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

NumberFormat()
Модификатор Конструктор Описание
protected
Единственный конструктор.

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

Модификатор и тип Метод Описание
Object clone()
Переопределяет Cloneable.
boolean equals(Object obj)
Сравнивает указанный объект с этим NumberFormat на равенство.
final String format(double number)
Специализация метода format.
abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
Специализация метода format.
final String format(long number)
Специализация метода format.
abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
Специализация метода format.
StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Форматирует число и добавляет полученный текст в указанный буфер строк.
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)
Возвращает процентный формат для указанной локали.
RoundingMode getRoundingMode()
Возвращает режим RoundingMode, используемый в этом NumberFormat.
int hashCode()
Возвращает хеш-код этого NumberFormat.
boolean isGroupingUsed()
Возвращает true, если в этом формате используются разделители групп разрядов.
boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает числа только как целые.
boolean isStrict()
Возвращает true, если этот формат выполняет строгий разбор чисел; в противном случае — false.
Number parse(String source)
Разбирает текст от начала указанной строки и создает Number.
abstract Number parse(String source, ParsePosition parsePosition)
Разбирает текст от начала указанной строки и создает Number.
final Object parseObject(String source, ParsePosition pos)
Разбирает текст из указанной строки и создает объект.
void setCurrency(Currency currency)
Устанавливает валюту, используемую этим числовым форматом при форматировании денежных значений.
void setGroupingUsed(boolean newValue)
Устанавливает, следует ли использовать в этом формате разделители групп разрядов.
void setMaximumFractionDigits(int newValue)
Устанавливает максимальное количество цифр, допустимое в дробной части числа при форматировании.
void setMaximumIntegerDigits(int newValue)
Устанавливает максимальное количество цифр, допустимое в целой части числа при форматировании.
void setMinimumFractionDigits(int newValue)
Устанавливает минимальное количество цифр, допустимое в дробной части числа при форматировании.
void setMinimumIntegerDigits(int newValue)
Устанавливает минимальное количество цифр, допустимое в целой части числа при форматировании.
void setParseIntegerOnly(boolean value)
Устанавливает, следует ли разбирать числа только как целые.
void setRoundingMode(RoundingMode roundingMode)
Устанавливает режим RoundingMode, используемый в этом NumberFormat.
void setStrict(boolean strict)
Изменяет значение нестрогого режима разбора.

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

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

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

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

Подробное описание полей

INTEGER_FIELD

public static final int INTEGER_FIELD
Константа поля, используемая для создания объекта FieldPosition. Указывает, что следует вернуть позицию целой части отформатированного числа.
См. также:
  • FieldPosition
  • Значения констант полей

FRACTION_FIELD

public static final int FRACTION_FIELD
Константа поля, используемая для создания объекта FieldPosition. Указывает, что следует вернуть позицию дробной части отформатированного числа.
См. также:
  • FieldPosition
  • Значения констант полей

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

NumberFormat

protected NumberFormat()
Единственный конструктор. (Вызывается конструкторами подклассов, обычно неявно.)

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

format

public StringBuffer format(Object number, StringBuffer toAppendTo, FieldPosition pos)
Форматирует число и добавляет полученный текст в указанный буфер строк. Число может быть экземпляром любого подкласса Number.

Эта реализация извлекает значение числа с помощью Number.longValue() для всех значений целочисленных типов, которые можно преобразовать в long без потери информации, включая значения BigInteger с bit length меньше 64, и Number.doubleValue() для всех остальных типов. Затем вызывается format(long,java.lang.StringBuffer,java.text.FieldPosition) или format(double,java.lang.StringBuffer,java.text.FieldPosition). Это может привести к потере информации о величине и точности для значений BigInteger и BigDecimal.

Определено в:
format в классе Format
Параметры:
number — число для форматирования
toAppendTo — StringBuffer, в который добавляется отформатированный текст
pos — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 1234567.89 в локали Locale.US, если заданное значение fieldPosition — INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены в 0 и 9 соответственно для выходной строки 1,234,567.89.
Возвращает:
значение, переданное в toAppendTo
Выбрасывает:
IllegalArgumentException — если number равно null или не является экземпляром Number.
NullPointerException — если toAppendTo или pos равно null
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • FieldPosition

parseObject

public final Object parseObject(String source, ParsePosition pos)
Разбирает текст из заданной строки и создает объект.

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

Определено в:
parseObject в классе Format
Требования к реализации:
Эта реализация эквивалентна вызову parse(source, pos).
Параметры:
source — String для разбора
pos — объект ParsePosition с информацией об индексе и индексе ошибки, как описано выше.
Возвращает:
Объект Number, разобранный из строки. В случае ошибки возвращает null.
Выбрасывает:
NullPointerException — если source или pos равно null.

format

public final String format(double number)
Специализация метода format.
Параметры:
number — число типа double для форматирования
Возвращает:
отформатированную строку
Выбрасывает:
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • Format.format(Object)

format

public final String format(long number)
Специализация метода format.
Параметры:
number — число типа long для форматирования
Возвращает:
отформатированную строку
Выбрасывает:
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • Format.format(Object)

format

public abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
Специализация метода format.
Параметры:
number — число типа double для форматирования
toAppendTo — StringBuffer, в который добавляется отформатированный текст
pos — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 1234567.89 в локали Locale.US, если заданное значение fieldPosition — INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены в 0 и 9 соответственно для выходной строки 1,234,567.89.
Возвращает:
отформатированный StringBuffer
Выбрасывает:
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • Format.format(Object)

format

public abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
Специализация метода format.
Параметры:
number — число типа long для форматирования
toAppendTo — StringBuffer, в который добавляется отформатированный текст
pos — отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа 123456789 в локали Locale.US, если заданное значение fieldPosition — INTEGER_FIELD, начальный и конечный индексы fieldPosition будут установлены в 0 и 11 соответственно для выходной строки 123,456,789.
Возвращает:
отформатированный StringBuffer
Выбрасывает:
ArithmeticException — если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY
См. также:
  • Format.format(Object)

parse

public abstract Number parse(String source, ParsePosition parsePosition)
Разбирает текст с начала заданной строки и создает Number.

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

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

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

parse

public Number parse(String source) throws ParseException
Разбирает текст с начала заданной строки и создает Number.

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

Параметры:
source — String для разбора с начала строки.
Возвращает:
Объект Number, разобранный из строки.
Выбрасывает:
ParseException — если разбор завершился неудачей
NullPointerException — если source равно null.
См. также:
  • isStrict()

isParseIntegerOnly

public boolean isParseIntegerOnly()
Возвращает true, если этот формат разбирает числа только как целые. Индекс ParsePosition будет установлен в позицию десятичного разделителя. Точный формат, принимаемый операцией разбора, зависит от локали. Например, в английской локали при значении ParseIntegerOnly true строка "123.45" будет разобрана как целое значение 123.
Возвращает:
true, если числа следует разбирать только как целые; false в противном случае

setParseIntegerOnly

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

isStrict

public boolean isStrict()
Возвращает true, если этот формат разбирает числа в строгом режиме; false в противном случае.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассам следует переопределить этот метод при реализации строгого разбора.
Возвращает:
true, если этот формат разбирает числа в строгом режиме; false в противном случае
Выбрасывает:
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
Начиная с версии:
23
См. также:
  • Раздел о строгости разбора
  • setStrict(boolean)

setStrict

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

getInstance

public static final NumberFormat getInstance()
Возвращает универсальный формат чисел для текущей локали по умолчанию FORMAT. Это эквивалентно вызову getNumberInstance().
Возвращает:
экземпляр NumberFormat для универсального форматирования чисел

getInstance

public static NumberFormat getInstance(Locale inLocale)
Возвращает универсальный формат чисел для указанной локали. Это эквивалентно вызову getNumberInstance(inLocale).
Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для универсального форматирования чисел

getNumberInstance

public static final NumberFormat getNumberInstance()
Возвращает универсальный формат чисел для текущей локали по умолчанию FORMAT.

Это эквивалентно вызову getNumberInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
экземпляр NumberFormat для универсального форматирования чисел
См. также:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getNumberInstance

public static NumberFormat getNumberInstance(Locale inLocale)
Возвращает универсальный формат чисел для указанной локали.
Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для универсального форматирования чисел

getIntegerInstance

public static final NumberFormat getIntegerInstance()
Возвращает целочисленный формат чисел для текущей локали по умолчанию FORMAT. Возвращаемый формат чисел настроен на округление чисел с плавающей точкой до ближайшего целого по правилу округления к ближайшему четному (см. RoundingMode.HALF_EVEN) при форматировании, а также на разбор только целой части входной строки (см. isParseIntegerOnly).

Это эквивалентно вызову getIntegerInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
формат чисел для целочисленных значений
Начиная с версии:
1.4
См. также:
  • getRoundingMode()
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getIntegerInstance

public static NumberFormat getIntegerInstance(Locale inLocale)
Возвращает целочисленный формат чисел для указанной локали. Возвращаемый формат чисел настроен на округление чисел с плавающей точкой до ближайшего целого по правилу округления к ближайшему четному (см. RoundingMode.HALF_EVEN) при форматировании, а также на разбор только целой части входной строки (см. isParseIntegerOnly).
Параметры:
inLocale — требуемая локаль
Возвращает:
формат чисел для целочисленных значений
Начиная с версии:
1.4
См. также:
  • getRoundingMode()

getCurrencyInstance

public static final NumberFormat getCurrencyInstance()
Возвращает формат валюты для текущей локали по умолчанию FORMAT.

Это эквивалентно вызову getCurrencyInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
экземпляр NumberFormat для форматирования валюты
См. также:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getCurrencyInstance

public static NumberFormat getCurrencyInstance(Locale inLocale)
Возвращает формат валюты для указанной локали.

Если указанная локаль содержит расширение Unicode "cf" ( стиль форматирования валюты) , возвращаемый формат валюты использует этот стиль, если он доступен. В противном случае используется стиль форматирования валюты по умолчанию "standard". Например, если стиль задает "account", в некоторых локалях отрицательные суммы в валюте заключаются в круглые скобки.

Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для форматирования валюты
Внешние спецификации
  • Язык разметки данных локалей Unicode (LDML)

getPercentInstance

public static final NumberFormat getPercentInstance()
Возвращает формат процентов для текущей локали по умолчанию FORMAT.

Это эквивалентно вызову getPercentInstance(Locale.getDefault(Locale.Category.FORMAT)).

Возвращает:
экземпляр NumberFormat для форматирования процентов
См. также:
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getPercentInstance

public static NumberFormat getPercentInstance(Locale inLocale)
Возвращает формат процентов для указанной локали.
Параметры:
inLocale — требуемая локаль
Возвращает:
экземпляр NumberFormat для форматирования процентов

getCompactNumberInstance

public static NumberFormat getCompactNumberInstance()
Возвращает компактный формат чисел для локали по умолчанию FORMAT со стилем форматирования "SHORT".
Возвращает:
Экземпляр NumberFormat для компактного форматирования чисел
Начиная с версии:
12
См. также:
  • CompactNumberFormat
  • NumberFormat.Style
  • Locale.getDefault(java.util.Locale.Category)
  • Locale.Category.FORMAT

getCompactNumberInstance

public static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
Возвращает компактный формат чисел для указанной locale и formatStyle.
Параметры:
locale — требуемая локаль
formatStyle — стиль форматирования числа
Возвращает:
Экземпляр NumberFormat для компактного форматирования чисел
Выбрасывает:
NullPointerException — если locale или formatStyle равно null
Начиная с версии:
12
См. также:
  • CompactNumberFormat
  • NumberFormat.Style
  • Locale

getAvailableLocales

public static Locale[] getAvailableLocales()
Возвращает массив всех локалей, для которых методы get*Instance этого класса могут возвращать локализованные экземпляры. Возвращаемый массив представляет собой объединение локалей, поддерживаемых средой выполнения Java и установленными реализациями NumberFormatProvider. Как минимум возвращаемый массив должен содержать экземпляр Locale, равный Locale.ROOT, и экземпляр Locale, равный Locale.US.
Возвращает:
Массив локалей, для которых доступны локализованные экземпляры NumberFormat.

hashCode

public int hashCode()
Возвращает хеш-код этого NumberFormat.
Переопределяет:
hashCode в классе Object
Требования к реализации:
Этот метод вычисляет значение хеш-кода с использованием значений, возвращаемых методами getMaximumIntegerDigits() и getMaximumFractionDigits().
Возвращает:
хеш-код этого NumberFormat
См. также:
  • Object.hashCode()

equals

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

clone

public Object clone()
Переопределяет Cloneable.
Переопределяет:
clone в классе Format
Возвращает:
клонированный экземпляр.
См. также:
  • Cloneable

isGroupingUsed

public boolean isGroupingUsed()
Возвращает true, если в этом формате используется группировка. Это относится как к форматированию, так и к разбору. Разделитель групп, а также размер каждой группы зависят от локали и определяются подклассами NumberFormat. Например, рассмотрим NumberFormat, в котором ожидается символ-разделитель группировки "," и размер группы равен 3.
  • Форматирование 1234567 с включенной группировкой возвращает "1,234,567"
  • Разбор "1,234,567" с отключенной группировкой возвращает 1
  • Разбор "1,234,567" с отключенной группировкой при условии, что isStrict(), возвращает true и выбрасывает ParseException
Возвращает:
true, если используется группировка; false в противном случае
См. также:
  • setGroupingUsed(boolean)
  • Раздел о строгости разбора

setGroupingUsed

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

getMaximumIntegerDigits

public int getMaximumIntegerDigits()
Возвращает максимальное количество цифр, допустимое в целой части числа при форматировании.
Возвращает:
максимальное количество цифр
См. также:
  • setMaximumIntegerDigits(int)

setMaximumIntegerDigits

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

getMinimumIntegerDigits

public int getMinimumIntegerDigits()
Возвращает минимальное количество цифр, допустимое в целой части числа при форматировании.
Возвращает:
минимальное количество цифр
См. также:
  • setMinimumIntegerDigits(int)

setMinimumIntegerDigits

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

getMaximumFractionDigits

public int getMaximumFractionDigits()
Возвращает максимальное количество цифр, допустимое в дробной части числа при форматировании.
Возвращает:
максимальное количество цифр.
См. также:
  • setMaximumFractionDigits(int)

setMaximumFractionDigits

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

getMinimumFractionDigits

public int getMinimumFractionDigits()
Возвращает минимальное количество цифр, допустимое в дробной части числа при форматировании.
Возвращает:
минимальное количество цифр
См. также:
  • setMinimumFractionDigits(int)

setMinimumFractionDigits

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

getCurrency

public Currency getCurrency()
Возвращает валюту, используемую этим форматом чисел при форматировании денежных значений. Исходное значение определяется с учетом локали. Возвращаемое значение может быть null, если определить действительную валюту не удалось и валюта не была задана с помощью setCurrency(Currency).
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Если требуется форматирование валют, подклассы должны переопределить этот метод.
Возвращает:
валюту, используемую этим форматом чисел, или null
Выбрасывает:
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
С версии:
1.4

setCurrency

public void setCurrency(Currency currency)
Задает валюту, используемую этим форматом чисел при форматировании денежных значений. Это не изменяет минимальное или максимальное количество цифр дробной части, используемое форматом чисел.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Если требуется форматирование валют, подклассы должны переопределить этот метод.
Параметры:
currency — новая валюта, которую будет использовать этот формат чисел
Выбрасывает:
NullPointerException — если currency равно null
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
С версии:
1.4

getRoundingMode

public RoundingMode getRoundingMode()
Возвращает RoundingMode, используемый в этом NumberFormat.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассы, поддерживающие различные режимы округления, должны переопределить этот метод.
Возвращает:
RoundingMode, используемый для этого NumberFormat.
Выбрасывает:
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
С версии:
1.6
См. также:
  • setRoundingMode(RoundingMode)

setRoundingMode

public void setRoundingMode(RoundingMode roundingMode)
Задает RoundingMode, используемый в этом NumberFormat.
Требования к реализации:
Реализация по умолчанию всегда выбрасывает UnsupportedOperationException. Подклассы, поддерживающие различные режимы округления, должны переопределить этот метод.
Параметры:
roundingMode — RoundingMode, который будет использоваться
Выбрасывает:
NullPointerException — если roundingMode равно null
UnsupportedOperationException — если реализация этого метода не поддерживает данную операцию
С версии:
1.6
См. также:
  • getRoundingMode()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по 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