NumberFormat Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
NumberFormat
— абстрактный базовый класс для всех форматов чисел.
[Android.Runtime.Register("java/text/NumberFormat", DoNotGenerateAcw=true)]
public abstract class NumberFormat : Java.Text._Format
[<Android.Runtime.Register("java/text/NumberFormat", DoNotGenerateAcw=true)>]
type NumberFormat = class
inherit _Format
- Наследование
- Производный
- Атрибуты
Комментарии
NumberFormat
— абстрактный базовый класс для всех форматов чисел. Этот класс предоставляет интерфейс для форматирования и синтаксического анализа чисел. NumberFormat
также предоставляет методы для определения форматов номеров языковых стандартов и их имен.
NumberFormat
помогает отформатировать и проанализировать числа для любого языкового стандарта. Код может быть полностью не зависит от соглашений языкового стандарта для десятичных точек, разделителей тысяч или даже определенных десятичных цифр, используемых или даже десятичных форматов.
Чтобы отформатировать число для текущего языкового стандарта, используйте один из методов класса фабрики: <blockquote>
{@code
myString = NumberFormat.getInstance().format(myNumber);
}
</blockquote> , если вы форматируете несколько чисел, эффективнее получить формат и использовать его несколько раз, чтобы система не собиралась получать сведения о местных языках и соглашениях страны несколько раз. <blockquote>
{@code
NumberFormat nf = NumberFormat.getInstance();
for (int i = 0; i < myNumber.length; ++i) {
output.println(nf.format(myNumber[i]) + "; ");
}
}
</blockquote> Для форматирования номера для другого языкового стандарта укажите его в вызове getInstance
. <blockquote>
{@code
NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
}
</blockquote>
Если языковой стандарт содержит расширения Юникода nu (числа), десятичные цифры и (или) страна, используемая для форматирования, переопределяются.
Можно также использовать NumberFormat
для синтаксического анализа чисел: <blockquote>
{@code
myNumber = nf.parse(myString);
}
</blockquote> Use getInstance
или getNumberInstance
get the normal number format. Используется getIntegerInstance
для получения целочисленного формата чисел. Используется getCurrencyInstance
для получения формата номера валют. Используется getCompactNumberInstance
для создания компактного формата чисел для форматирования числа в более короткой форме. Например, 2000
можно отформатировать как "2K"
в java.util.Locale#US US locale
. Используется getPercentInstance
для получения формата для отображения процентных значений. В этом формате доля, например 0,53, отображается как 53%.
Вы также можете управлять отображением чисел с помощью таких методов, как setMinimumFractionDigits
. Если вы хотите еще больше контроля над форматом или анализом или хотите предоставить пользователям больше управления, вы можете попробовать приведение NumberFormat
методов фабрики к DecimalFormat
CompactNumberFormat
используемому методу или в зависимости от используемого метода фабрики. Это будет работать для подавляющего большинства языковых стандартов; просто не забудьте положить его в try
блок в случае, если вы столкнулись с необычным.
NumberFormat и DecimalFormat предназначены таким образом, чтобы некоторые элементы управления работали для форматирования, а другие — для синтаксического анализа. Ниже приведено подробное описание каждого из этих методов управления.
setParseIntegerOnly: влияет только на синтаксический анализ, например, если true, "3456,78" → 3456 (и оставляет позицию синтаксического анализа сразу после индекса 6), если значение false, "3456,78" → 3456.78 (и оставляет позицию синтаксического анализа сразу после индекса 8) Это не зависит от форматирования. Если вы хотите не отображать десятичную точку, где после десятичной запятой может быть никаких цифр, используйте setDecimalSeparatorAlwaysShown.
setDecimalSeparatorAlwaysShown: влияет только на форматирование, и только в том случае, если после десятичной запятой могут быть цифры, такие как "#,#0.##", например, если значение true, 3456.00 → "3,456." Значение false, 3456.00 → "3456" Это не зависит от синтаксического анализа. Если вы хотите, чтобы синтаксический анализ остановился на десятичной точке, используйте setParseIntegerOnly.
Вы также можете использовать формы parse
и format
методы с FieldPosition
ParsePosition
помощью и разрешить: <ul<>li постепенно проанализировать с помощью фрагментов строки <li>> выровнять десятичную точку и другие области </ul>, например, выровнять числа можно двумя способами: <ol<>li>, если вы используете монопространственных шрифтов с интервалами для выравнивания, вы можете передать FieldPosition
вызов формата. с field
= INTEGER_FIELD
. Для выходных данных getEndIndex
задается смещение между последним символом целого числа и десятичным числом. Добавьте пробелы (desiredSpaceCount — getEndIndex) в начале строки.
<li> , если вы используете пропорциональные шрифты, а не заполнение пробелами, измеряйте ширину строки в пикселях от начала до getEndIndex
. Затем переместите перо (desiredPixelWidth - widthToAlignmentPoint) перед рисованием текста. Он также работает, где нет десятичных знаков, но, возможно, дополнительные символы в конце, например с скобками в отрицательных числах: "(12)" для -12. </Пр>
<h2>"синхронизация">Синхронизация</h2>
Форматы чисел обычно не синхронизированы. Рекомендуется создать отдельные экземпляры формата для каждого потока. Если несколько потоков одновременно обращаются к формату, он должен быть синхронизирован вневне.
Добавлено в версии 1.1.
Документация по Java для java.text.NumberFormat
.
Части этой страницы — это изменения на основе работы, созданной и общей проектом с открытым исходным кодом Android и используемой в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.
Конструкторы
NumberFormat() |
Конструктор единственного. |
NumberFormat(IntPtr, JniHandleOwnership) |
Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения. |
Поля
FractionField |
Константы полей, используемые для создания объекта FieldPosition. |
IntegerField |
Константы полей, используемые для создания объекта FieldPosition. |
Свойства
Class |
Возвращает класс среды выполнения этого |
Currency |
Возвращает валюту, используемую этим форматом чисел при форматировании значений валют. -или- задает валюту, используемую этим форматом чисел при форматировании значений валюты. |
CurrencyInstance |
Возвращает формат валюты для текущего языкового стандарта по умолчанию |
GroupingUsed |
Возвращает значение true, если группирование используется в этом формате. -или- Задайте, будет ли группирование использоваться в этом формате. |
Handle |
Дескриптор базового экземпляра Android. (Унаследовано от Object) |
Instance |
Возвращает формат номера общего назначения для текущего языкового стандарта по умолчанию |
IntegerInstance |
Возвращает целочисленный формат числа для текущего языкового стандарта по умолчанию |
JniIdentityHashCode |
|
JniPeerMembers |
|
MaximumFractionDigits |
Возвращает максимальное число цифр, разрешенных в дробной части числа. -или- задает максимальное число цифр, разрешенных в дробной части числа. |
MaximumIntegerDigits |
Возвращает максимальное число цифр, разрешенных в целочисленной части числа. -или- задает максимальное число цифр, разрешенных в целочисленной части числа. |
MinimumFractionDigits |
Возвращает минимальное число цифр, разрешенных в дробной части числа. -или- задает минимальное число цифр, разрешенных в дробной части числа. |
MinimumIntegerDigits |
Возвращает минимальное число цифр, разрешенных в целочисленной части числа. -или- задает минимальное число цифр, разрешенных в целочисленной части числа. |
NumberInstance |
Возвращает формат номера общего назначения для текущего языкового стандарта по умолчанию |
ParseIntegerOnly |
Возвращает значение true, если этот формат анализирует числа только в виде целых чисел. -или- Задает, следует ли анализировать числа только в виде целых чисел. |
PeerReference |
|
PercentInstance |
Возвращает процентный формат для текущего языкового стандарта по умолчанию |
RoundingMode |
Возвращает используемый |
ThresholdClass |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
ThresholdType |
Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода. |
Методы
Clone() |
Создает и возвращает копию этого объекта. (Унаследовано от _Format) |
Dispose() |
|
Dispose(Boolean) |
|
Equals(Object) |
Указывает, равен ли другой объект этому объекту. (Унаследовано от Object) |
Format(Double) |
Специализация формата. |
Format(Double, StringBuffer, FieldPosition) |
Специализация формата. |
Format(Int64) |
Специализация формата. |
Format(Int64, StringBuffer, FieldPosition) |
Специализация формата. |
Format(Object) |
Форматирует объект для создания строки. (Унаследовано от _Format) |
Format(Object, StringBuffer, FieldPosition) |
Форматирует число и добавляет полученный текст к заданному буферу строки. |
FormatToCharacterIterator(Object) |
Форматирует объект, создающий |
GetAvailableLocales() |
Возвращает научный формат для текущего языкового стандарта по умолчанию. |
GetCurrencyInstance(Locale) |
Возвращает формат валюты для указанного языкового стандарта. |
GetHashCode() |
Возвращает значение хэш-кода для объекта. (Унаследовано от Object) |
GetInstance(Locale) |
Возвращает формат номера общего назначения для указанного языкового стандарта. |
GetIntegerInstance(Locale) |
Возвращает целочисленный формат числа для указанного языкового стандарта. |
GetNumberInstance(Locale) |
Возвращает формат номера общего назначения для указанного языкового стандарта. |
GetPercentInstance(Locale) |
Возвращает процентный формат для указанного языкового стандарта. |
JavaFinalize() |
Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет. (Унаследовано от Object) |
Notify() |
Пробуждение одного потока, ожидающего монитора этого объекта. (Унаследовано от Object) |
NotifyAll() |
Просыпает все потоки, ожидающие монитора этого объекта. (Унаследовано от Object) |
Parse(String) |
Анализирует текст с начала заданной строки, чтобы создать число. |
Parse(String, ParsePosition) |
Возвращает длину, если это возможно (e). |
ParseObject(String) |
Анализирует текст с начала заданной строки для создания объекта. (Унаследовано от _Format) |
ParseObject(String, ParsePosition) |
Анализирует текст из строки для создания |
SetHandle(IntPtr, JniHandleOwnership) |
Задает свойство Handle. (Унаследовано от Object) |
ToArray<T>() |
|
ToString() |
Возвращает строковое представление объекта. (Унаследовано от Object) |
UnregisterFromRuntime() |
|
Wait() |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>помощи уведомления</em> или <эм>прерванного</em>. (Унаследовано от Object) |
Wait(Int64) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Wait(Int64, Int32) |
Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прервано< или> до тех пор, пока не истекло определенное количество реального времени. (Унаследовано от Object) |
Явные реализации интерфейса
IJavaPeerable.Disposed() |
|
IJavaPeerable.DisposeUnlessReferenced() |
|
IJavaPeerable.Finalized() |
|
IJavaPeerable.JniManagedPeerState |
|
IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
IJavaPeerable.SetPeerReference(JniObjectReference) |
|
Методы расширения
JavaCast<TResult>(IJavaObject) |
Выполняет преобразование типа, проверяемого средой выполнения Android. |
JavaCast<TResult>(IJavaObject) |
|
GetJniTypeName(IJavaPeerable) |
|