NumberFormat 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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”(数字)Unicode 扩展,则重写用于格式设置的十进制数字和/或国家/地区。
还可以使用 a NumberFormat 分析数字: <blockquote>
{@code
myNumber = nf.parse(myString);
}
</blockquote> 使用 getInstance 或 getNumberInstance 获取普通数字格式。 用于 getIntegerInstance 获取整数格式。 用于 getCurrencyInstance 获取货币编号格式。 用于 getCompactNumberInstance 获取压缩数字格式以较短格式设置数字的格式。 例如, 2000 可以格式化为 "2K" in java.util.Locale#US US locale. 用于 getPercentInstance 获取用于显示百分比的格式。 使用此格式时,0.53 等分数显示为 53%。
还可以使用此类方法 setMinimumFractionDigits控制数字的显示。 如果希望更好地控制格式或分析,或者希望为用户提供更多控制权,可以尝试将你从工厂方法DecimalFormat转换为NumberFormat或CompactNumberFormat取决于所使用的工厂方法。 这将适用于绝大多数区域设置:只是记得把它放在一个 try 块, 以防你遇到一个不寻常的块。
NumberFormat 和 DecimalFormat 设计为使某些控件可用于格式设置,而其他控件用于分析。 下面是每个控件方法的详细说明,
setParseIntegerOnly:仅影响分析,例如,如果为 true,则为“3456.78” →3456(如果为 false,则离开索引 6 之后的分析位置),如果为 false,则为“3456.78” →3456.78(在索引 8 之后离开分析位置),这独立于格式设置。 如果不想显示小数点,其中小数点后可能没有数字,请使用 setDecimalSeparatorAlwaysShown。
setDecimalSeparatorAlwaysShown:仅影响格式设置,并且仅当小数点之后可能没有数字的位置,例如,采用“#,##0.##”等模式,例如,如果为 true,则为 3456.00 →"3,456." 如果为 false,则为 3456.00 →“3456”这与分析无关。 如果要分析在小数点停止,请使用 setParseIntegerOnly。
还可以使用parse格式和format方法ParsePosition,并允许FieldPosition你:<ul><li 以渐进方式分析字符串 <li>> 对齐小数点和其他区域 </ul>。例如,可以通过两种方式对齐数字:<ol<>li> 如果使用带间距的单空格字体进行对齐,则可以按格式调用传递FieldPosition格式调用, with field = INTEGER_FIELD. 在输出中, getEndIndex 将设置为整数的最后一个字符与小数之间的偏移量。 在字符串前面添加 (desiredSpaceCount - getEndIndex) 空格。
<li> 如果使用成比例字体,而不是用空格填充,则从头到 getEndIndex尾测量字符串的宽度(以像素为单位)。 然后在绘制文本之前移动笔(desiredPixelWidth - widthToAlignmentPoint)。 它还适用于没有十进制值,但末尾可能有其他字符,例如,带负数的括号:“(12)”表示 -12。 </老>
<h2>“synchronization”>Synchronization</h2>
数字格式通常不会同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问格式,则必须在外部同步。
在 1.1 中添加。
适用于 . 的 java.text.NumberFormatJava 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
构造函数
| 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 for Android 基础结构,不打算直接从代码使用。 |
| ThresholdType |
此 API 支持 Mono for 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) |
如果可能,则返回 Long (e. |
| ParseObject(String) |
分析给定字符串开头的文本以生成对象。 (继承自 _Format) |
| ParseObject(String, ParsePosition) |
分析字符串中的文本以生成一个 |
| SetHandle(IntPtr, JniHandleOwnership) |
设置 Handle 属性。 (继承自 Object) |
| ToArray<T>() |
|
| ToString() |
返回对象的字符串表示形式。 (继承自 Object) |
| UnregisterFromRuntime() |
|
| Wait() |
使当前线程等待,直到唤醒它,通常是通过 em 通知/em> 或 <em>interrupted</em>。<>< (继承自 Object) |
| Wait(Int64) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</em>>,或直到经过一定数量的实时。 (继承自 Object) |
| Wait(Int64, Int32) |
使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted</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) |
|