Класс 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, чтобы:
- Последовательно разбирать части строки
- Выравнивать десятичный разделитель и другие элементы
- Если используется моноширинный шрифт с интервалами для выравнивания, передайте
FieldPositionв вызов формата, указавfield=INTEGER_FIELD. При выводеgetEndIndexбудет установлено в смещение между последним символом целой части и десятичным разделителем. Добавьте в начало строки (требуемое количество пробелов — getEndIndex) пробелов. - Если используется пропорциональный шрифт, вместо добавления пробелов измерьте ширину строки в пикселях от начала до
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
- Внешние спецификации
- См. также:
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static class |
NumberFormat.Field |
Определяет константы, используемые в качестве ключей атрибутов в AttributedCharacterIterator, возвращаемом из NumberFormat.formatToCharacterIterator, и в качестве идентификаторов полей в FieldPosition. |
static enum |
NumberFormat.Style |
Стиль числового формата. |
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
FRACTION_FIELD |
Константа поля, используемая для создания объекта FieldPosition. |
static final int |
INTEGER_FIELD |
Константа поля, используемая для создания объекта FieldPosition. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Единственный конструктор. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Переопределяет Cloneable. |
boolean |
equals |
Сравнивает указанный объект с этим NumberFormat на равенство. |
final String |
format |
Специализация метода format. |
abstract StringBuffer |
format |
Специализация метода format. |
final String |
format |
Специализация метода format. |
abstract StringBuffer |
format |
Специализация метода format. |
StringBuffer |
format |
Форматирует число и добавляет полученный текст в указанный буфер строк. |
static Locale[] |
getAvailableLocales() |
Возвращает массив всех локалей, для которых методы get*Instance этого класса могут возвращать локализованные экземпляры. |
static NumberFormat |
getCompactNumberInstance() |
|
static NumberFormat |
getCompactNumberInstance |
Возвращает компактный числовой формат для указанной locale и formatStyle. |
Currency |
getCurrency() |
Возвращает валюту, используемую этим числовым форматом при форматировании денежных значений. |
static final NumberFormat |
getCurrencyInstance() |
Возвращает денежный формат для текущей локали FORMAT по умолчанию. |
static NumberFormat |
getCurrencyInstance |
Возвращает денежный формат для указанной локали. |
static final NumberFormat |
getInstance() |
Возвращает универсальный числовой формат для текущей локали FORMAT по умолчанию. |
static NumberFormat |
getInstance |
Возвращает универсальный числовой формат для указанной локали. |
static final NumberFormat |
getIntegerInstance() |
Возвращает формат целых чисел для текущей локали FORMAT по умолчанию. |
static NumberFormat |
getIntegerInstance |
Возвращает формат целых чисел для указанной локали. |
int |
getMaximumFractionDigits() |
Возвращает максимальное количество цифр, допустимое в дробной части числа при форматировании. |
int |
getMaximumIntegerDigits() |
Возвращает максимальное количество цифр, допустимое в целой части числа при форматировании. |
int |
getMinimumFractionDigits() |
Возвращает минимальное количество цифр, допустимое в дробной части числа при форматировании. |
int |
getMinimumIntegerDigits() |
Возвращает минимальное количество цифр, допустимое в целой части числа при форматировании. |
static final NumberFormat |
getNumberInstance() |
Возвращает универсальный числовой формат для текущей локали FORMAT по умолчанию. |
static NumberFormat |
getNumberInstance |
Возвращает универсальный числовой формат для указанной локали. |
static final NumberFormat |
getPercentInstance() |
Возвращает процентный формат для текущей локали FORMAT по умолчанию. |
static NumberFormat |
getPercentInstance |
Возвращает процентный формат для указанной локали. |
RoundingMode |
getRoundingMode() |
Возвращает режим RoundingMode, используемый в этом NumberFormat. |
int |
hashCode() |
Возвращает хеш-код этого NumberFormat. |
boolean |
isGroupingUsed() |
Возвращает true, если в этом формате используются разделители групп разрядов. |
boolean |
isParseIntegerOnly() |
Возвращает true, если этот формат разбирает числа только как целые. |
boolean |
isStrict() |
Возвращает true, если этот формат выполняет строгий разбор чисел; в противном случае — false. |
Number |
parse |
Разбирает текст от начала указанной строки и создает Number. |
abstract Number |
parse |
Разбирает текст от начала указанной строки и создает Number. |
final Object |
parseObject |
Разбирает текст из указанной строки и создает объект. |
void |
setCurrency |
Устанавливает валюту, используемую этим числовым форматом при форматировании денежных значений. |
void |
setGroupingUsed |
Устанавливает, следует ли использовать в этом формате разделители групп разрядов. |
void |
setMaximumFractionDigits |
Устанавливает максимальное количество цифр, допустимое в дробной части числа при форматировании. |
void |
setMaximumIntegerDigits |
Устанавливает максимальное количество цифр, допустимое в целой части числа при форматировании. |
void |
setMinimumFractionDigits |
Устанавливает минимальное количество цифр, допустимое в дробной части числа при форматировании. |
void |
setMinimumIntegerDigits |
Устанавливает минимальное количество цифр, допустимое в целой части числа при форматировании. |
void |
setParseIntegerOnly |
Устанавливает, следует ли разбирать числа только как целые. |
void |
setRoundingMode |
Устанавливает режим RoundingMode, используемый в этом NumberFormat. |
void |
setStrict |
Изменяет значение нестрогого режима разбора. |
Методы, объявленные в классе Format
format, formatToCharacterIterator, parseObject | Модификатор и тип | Метод | Описание |
|---|---|---|
final String |
format |
Форматирует объект, создавая строку. |
AttributedCharacterIterator |
formatToCharacterIterator |
Форматирует объект, создавая AttributedCharacterIterator. |
Object |
parseObject |
Разбирает текст от начала указанной строки и создает объект. |
Методы, объявленные в классе 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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного интервала реального времени. |
Подробное описание полей
INTEGER_FIELD
public static final int INTEGER_FIELD
- См. также:
FRACTION_FIELD
public static final int FRACTION_FIELD
- См. также:
Подробное описание конструкторов
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 - См. также:
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)
- Параметры:
-
number— число типа double для форматирования - Возвращает:
- отформатированную строку
- Выбрасывает:
-
ArithmeticException— если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY - См. также:
format
public final String format(long number)
- Параметры:
-
number— число типа long для форматирования - Возвращает:
- отформатированную строку
- Выбрасывает:
-
ArithmeticException— если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY - См. также:
format
public abstract StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition pos)
- Параметры:
-
number— число типа double для форматирования -
toAppendTo— StringBuffer, в который добавляется отформатированный текст -
pos— отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа1234567.89в локалиLocale.US, если заданное значениеfieldPosition—INTEGER_FIELD, начальный и конечный индексыfieldPositionбудут установлены в 0 и 9 соответственно для выходной строки1,234,567.89. - Возвращает:
- отформатированный StringBuffer
- Выбрасывает:
-
ArithmeticException— если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY - См. также:
format
public abstract StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition pos)
- Параметры:
-
number— число типа long для форматирования -
toAppendTo— StringBuffer, в который добавляется отформатированный текст -
pos— отслеживает позицию поля в возвращаемой строке. Например, при форматировании числа123456789в локалиLocale.US, если заданное значениеfieldPosition—INTEGER_FIELD, начальный и конечный индексыfieldPositionбудут установлены в 0 и 11 соответственно для выходной строки123,456,789. - Возвращает:
- отформатированный StringBuffer
- Выбрасывает:
-
ArithmeticException— если требуется округление, а режим округления установлен в RoundingMode.UNNECESSARY - См. также:
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. - См. также:
parse
public Number parse(String source) throws ParseException
Number. Этот метод возвращает Long, если это возможно (например, значение находится в диапазоне [Long.MIN_VALUE, Long.MAX_VALUE] и не содержит дробной части); в противном случае возвращается Double.
- Параметры:
-
source—Stringдля разбора с начала строки. - Возвращает:
- Объект
Number, разобранный из строки. - Выбрасывает:
-
ParseException— если разбор завершился неудачей -
NullPointerException— еслиsourceравноnull. - См. также:
isParseIntegerOnly
public boolean isParseIntegerOnly()
true, если этот формат разбирает числа только как целые. Индекс ParsePosition будет установлен в позицию десятичного разделителя. Точный формат, принимаемый операцией разбора, зависит от локали. Например, в английской локали при значении ParseIntegerOnly true строка "123.45" будет разобрана как целое значение 123.- Возвращает:
-
true, если числа следует разбирать только как целые;falseв противном случае
setParseIntegerOnly
public void setParseIntegerOnly(boolean value)
- Параметры:
-
value—true, если числа следует разбирать только как целые;falseв противном случае - См. также:
isStrict
public boolean isStrict()
true, если этот формат разбирает числа в строгом режиме; false в противном случае.- Требования к реализации:
- Реализация по умолчанию всегда выбрасывает
UnsupportedOperationException. Подклассам следует переопределить этот метод при реализации строгого разбора. - Возвращает:
-
true, если этот формат разбирает числа в строгом режиме;falseв противном случае - Выбрасывает:
-
UnsupportedOperationException— если реализация этого метода не поддерживает данную операцию - Начиная с версии:
- 23
- См. также:
setStrict
public void setStrict(boolean strict)
- Требования к реализации:
- Реализация по умолчанию всегда выбрасывает
UnsupportedOperationException. Подклассам следует переопределить этот метод при реализации строгого разбора. - Параметры:
-
strict—true, если разбор следует выполнять в строгом режиме;falseв противном случае - Выбрасывает:
-
UnsupportedOperationException— если реализация этого метода не поддерживает данную операцию - Начиная с версии:
- 23
- См. также:
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для универсального форматирования чисел - См. также:
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
- См. также:
getIntegerInstance
public static NumberFormat getIntegerInstance(Locale inLocale)
RoundingMode.HALF_EVEN) при форматировании, а также на разбор только целой части входной строки (см. isParseIntegerOnly).- Параметры:
-
inLocale— требуемая локаль - Возвращает:
- формат чисел для целочисленных значений
- Начиная с версии:
- 1.4
- См. также:
getCurrencyInstance
public static final NumberFormat getCurrencyInstance()
FORMAT. Это эквивалентно вызову getCurrencyInstance(Locale.getDefault(Locale.Category.FORMAT)).
- Возвращает:
- экземпляр
NumberFormatдля форматирования валюты - См. также:
getCurrencyInstance
public static NumberFormat getCurrencyInstance(Locale inLocale)
Если указанная локаль содержит расширение Unicode "cf" ( стиль форматирования валюты) , возвращаемый формат валюты использует этот стиль, если он доступен. В противном случае используется стиль форматирования валюты по умолчанию "standard". Например, если стиль задает "account", в некоторых локалях отрицательные суммы в валюте заключаются в круглые скобки.
- Параметры:
-
inLocale— требуемая локаль - Возвращает:
- экземпляр
NumberFormatдля форматирования валюты - Внешние спецификации
getPercentInstance
public static final NumberFormat getPercentInstance()
FORMAT. Это эквивалентно вызову getPercentInstance(Locale.getDefault(Locale.Category.FORMAT)).
- Возвращает:
- экземпляр
NumberFormatдля форматирования процентов - См. также:
getPercentInstance
public static NumberFormat getPercentInstance(Locale inLocale)
- Параметры:
-
inLocale— требуемая локаль - Возвращает:
- экземпляр
NumberFormatдля форматирования процентов
getCompactNumberInstance
getCompactNumberInstance
public static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
locale и formatStyle.- Параметры:
-
locale— требуемая локаль -
formatStyle— стиль форматирования числа - Возвращает:
- Экземпляр
NumberFormatдля компактного форматирования чисел - Выбрасывает:
-
NullPointerException— еслиlocaleилиformatStyleравноnull - Начиная с версии:
- 12
- См. также:
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 - См. также:
equals
public boolean equals(Object obj)
NumberFormat на равенство. Возвращает true, если объект также является NumberFormat и оба формата одинаково форматируют любое значение.- Переопределяет:
-
equalsв классеObject - Требования к реализации:
- Этот метод проверяет равенство, определяя идентичность классов на основе
getClass(), а неinstanceof. Поэтому в методах equals подклассов ни один экземпляр этого класса не должен считаться равным экземпляру подкласса. - Параметры:
-
obj— объект для сравнения на равенство - Возвращает:
-
true, если указанный объект равен этомуNumberFormat - См. также:
clone
isGroupingUsed
public boolean isGroupingUsed()
NumberFormat, в котором ожидается символ-разделитель группировки "," и размер группы равен 3. - Форматирование
1234567с включенной группировкой возвращает"1,234,567" - Разбор
"1,234,567"с отключенной группировкой возвращает1 - Разбор
"1,234,567"с отключенной группировкой при условии, чтоisStrict(), возвращаетtrueи выбрасываетParseException
- Возвращает:
-
true, если используется группировка;falseв противном случае - См. также:
setGroupingUsed
public void setGroupingUsed(boolean newValue)
- Параметры:
-
newValue—true, если используется группировка;falseв противном случае - См. также:
getMaximumIntegerDigits
public int getMaximumIntegerDigits()
- Возвращает:
- максимальное количество цифр
- См. также:
setMaximumIntegerDigits
public void setMaximumIntegerDigits(int newValue)
maximumIntegerDigits должно быть ≥ minimumIntegerDigits. Если новое значение
maximumIntegerDigits меньше текущего значения minimumIntegerDigits, то minimumIntegerDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.- Параметры:
-
newValue— максимальное количество отображаемых цифр целой части. Конкретный подкласс может установить верхний предел этого значения, соответствующий форматируемому числовому типу. - См. также:
getMinimumIntegerDigits
public int getMinimumIntegerDigits()
- Возвращает:
- минимальное количество цифр
- См. также:
setMinimumIntegerDigits
public void setMinimumIntegerDigits(int newValue)
minimumIntegerDigits должно быть ≤ maximumIntegerDigits. Если новое значение minimumIntegerDigits превышает текущее значение maximumIntegerDigits, то
maximumIntegerDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.- Параметры:
-
newValue— минимальное количество отображаемых цифр целой части. Конкретный подкласс может установить верхний предел этого значения, соответствующий форматируемому числовому типу. - См. также:
getMaximumFractionDigits
public int getMaximumFractionDigits()
- Возвращает:
- максимальное количество цифр.
- См. также:
setMaximumFractionDigits
public void setMaximumFractionDigits(int newValue)
maximumFractionDigits должно быть ≥ minimumFractionDigits. Если новое значение maximumFractionDigits меньше текущего значения minimumFractionDigits, то minimumFractionDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.- Параметры:
-
newValue— максимальное количество отображаемых цифр дробной части. Конкретный подкласс может установить верхний предел этого значения, соответствующий форматируемому числовому типу. - См. также:
getMinimumFractionDigits
public int getMinimumFractionDigits()
- Возвращает:
- минимальное количество цифр
- См. также:
setMinimumFractionDigits
public void setMinimumFractionDigits(int newValue)
minimumFractionDigits должно быть ≤ maximumFractionDigits. Если новое значение
minimumFractionDigits превышает текущее значение
maximumFractionDigits, то maximumFractionDigits также будет установлено в новое значение. Отрицательные входные значения заменяются на 0.- Параметры:
-
newValue— минимальное количество отображаемых цифр дробной части. Конкретный подкласс может установить верхний предел этого значения, соответствующий форматируемому числовому типу. - См. также:
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
public void setRoundingMode(RoundingMode roundingMode)
RoundingMode, используемый в этом NumberFormat.- Требования к реализации:
- Реализация по умолчанию всегда выбрасывает
UnsupportedOperationException. Подклассы, поддерживающие различные режимы округления, должны переопределить этот метод. - Параметры:
-
roundingMode—RoundingMode, который будет использоваться - Выбрасывает:
-
NullPointerException— еслиroundingModeравноnull -
UnsupportedOperationException— если реализация этого метода не поддерживает данную операцию - С версии:
- 1.6
- См. также:
© 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.