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 幫助你格式化和解析任何地區的數字。 你的程式碼可以完全不受小數點、千分隔符,甚至特定小數位數字的限制,甚至數字格式是否為十進位,完全獨立。
要格式化當前 Locale 的數字,請使用工廠類別方法之一: <blockquote>
{@code
myString = NumberFormat.getInstance().format(myNumber);
}
</blockquote> 如果你要格式化多個數字,取得格式並多次使用會更有效率,這樣系統就不用多次取得當地語言和國家慣例的資訊。 <引用>
{@code
NumberFormat nf = NumberFormat.getInstance();
for (int i = 0; i < myNumber.length; ++i) {
output.println(nf.format(myNumber[i]) + "; ");
}
}
</blockquote> 若要格式化不同地點的號碼,請在呼叫 中 getInstance指定。
<引用>
{@code
NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
}
</區塊引用>
若區域包含「nu」(數字)Unicode 擴展名,則會覆蓋十進位數字及/或用於格式化的國家。
你也可以用 a NumberFormat 來解析數字: <blockquote>
{@code
myNumber = nf.parse(myString);
}
</blockquote> 使用 getInstance 或 getNumberInstance 取得正常數字格式。 用來 getIntegerInstance 取得整數格式。 用 getCurrencyInstance 來取得貨幣編號格式。 使用 getCompactNumberInstance 簡短數字格式來格式化數字。 例如, 2000 可以格式化為 "2K"java.util.Locale#US US locale。 請使用 getPercentInstance 來取得顯示百分比的格式。 在此格式中,像0.53這樣的分數會顯示為53%。
你也可以用以下方法 setMinimumFractionDigits控制數字的顯示。 如果你想要更多格式或解析的控制,或想給使用者更多控制權,可以嘗試將 NumberFormat 從工廠方法取得的 投射到 a DecimalFormat 或 CompactNumberFormat ,視所用工廠方法而定。 這對絕大多數地點都適用;記得把它放在 try 方塊裡,以防遇到異常的方塊。
NumberFormat 與 DecimalFormat 的設計使得部分控制項可用於格式化,另一些則用於解析。 以下是這些控制方法的詳細說明,
setParseIntegerOnly : 僅影響解析,例如若為真,則「3456.78」 →3456(若為錯誤,則在索引 6 後不切入解析位置),「3456.78」 及 rarr;3456.78(並在索引 8 後離開解析位置)這與格式無關。 如果你不想顯示小數點後面可能沒有數字的地方,可以使用 setDecimalSeparatorAlwaysShown。
setDecimalSecialtorAlwaysShown : 僅影響格式,且僅在小數點後沒有數字的情況下,例如「#,##0.##」,例如若為真,則為 3456.00 & rarr;"3,456." 若為錯誤,則為3456.00 & rarr;「3456」這與解析無關。 如果你想讓解析在小數點停止,可以用 setParseIntegerOnly。
你也可以使用和parseformat方法的形式ParsePositionFieldPosition,讓你能:<ul><li> 逐步解析字串<片段 li> 對齊小數點及其他區域 </ul> 例如,你可以用兩種方式<對齊數字:ol><li> 如果你使用帶有空格的字型來對齊,你可以在格式中呼叫 ,FieldPosition 其中 field = INTEGER_FIELD。 輸出時, getEndIndex 將設定為整數最後一個字元與小數點之間的偏移量。 在字串前方加(desiredSpaceCount - getEndIndex)空格。
<如果你> 使用比例字型,不要用空格填充,而是從起點到 getEndIndex的像素來測量字串的寬度。 接著在繪製文字前,將筆移動 (desiredPixelWidth - widthToAlignmentPoint) 它也適用於沒有小數點,但可能在末尾加額外字元的情況,例如用負數括號表示「(12)」表示 -12。
</ol>
<h2>「synchronization」同步></h2>
數字格式通常不會同步。 建議為每個執行緒建立獨立格式實例。 若多個執行緒同時存取同一格式,必須在外部同步。
在 1.1 版本中加入。
的 java.text.NumberFormatJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| NumberFormat() |
唯一的製造者。 |
| NumberFormat(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
欄位
| 名稱 | Description |
|---|---|
| FractionField |
場常數用於建構 FieldPosition 物件。 |
| IntegerField |
場常數用於建構 FieldPosition 物件。 |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| Currency |
在格式化貨幣值時,取得此數字格式所使用的貨幣。 -或- 設定此數字格式在格式化貨幣值時所使用的貨幣。 |
| CurrencyInstance |
回傳目前預設 |
| GroupingUsed |
若使用此格式的分組,則會回傳真值。 -或- 設定此格式是否使用分組。 |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| Instance |
回傳目前預設 |
| IntegerInstance |
回傳目前預設 |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| MaximumFractionDigits |
回傳數字分數部分允許的最大位數。 -或- 設定數字分數部分中允許的最大位數。 |
| MaximumIntegerDigits |
回傳數字整數部分允許的最大位數。 -或- 設定數字整數部分允許的最大位數。 |
| MinimumFractionDigits |
回傳數字分數部分中允許的最小位數。 -或- 設定數字分數部分中允許的最小位數。 |
| MinimumIntegerDigits |
回傳數字整數部分允許的最小位數。 -或- 設定數字整數部分允許的最小數字數。 |
| NumberInstance |
回傳目前預設 |
| ParseIntegerOnly |
如果此格式僅解析數字為整數,則回傳為真。 -或- 設定數字是否應僅解析為整數。 |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| PercentInstance |
會回傳目前預設 |
| RoundingMode |
在這個數字格式中被 |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| Format(Double, StringBuffer, FieldPosition) |
格式的專業化。 |
| Format(Double) |
格式的專業化。 |
| Format(Int64, StringBuffer, FieldPosition) |
格式的專業化。 |
| Format(Int64) |
格式的專業化。 |
| Format(Object, StringBuffer, FieldPosition) |
格式化一個數字,並將所得文字附加到給定的字串緩衝區。 |
| Format(Object) |
格式化物件以產生字串。 (繼承來源 _Format) |
| FormatToCharacterIterator(Object) |
格式化物件產生 |
| GetAvailableLocales() |
回傳目前預設地點的科學格式。 |
| GetCurrencyInstance(Locale) |
會回傳指定地區的貨幣格式。 |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| GetInstance(Locale) |
回傳指定地區的通用號碼格式。 |
| GetIntegerInstance(Locale) |
回傳指定地點的整數格式。 |
| GetNumberInstance(Locale) |
回傳指定地區的通用號碼格式。 |
| GetPercentInstance(Locale) |
回傳指定地點的百分比格式。 |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Parse(String, ParsePosition) |
如果可能的話,回放多頭(例如: |
| Parse(String) |
從給定字串的開頭解析文字以產生一個數字。 |
| ParseObject(String, ParsePosition) |
從字串中解析文字以產生 |
| ParseObject(String) |
解析給定字串開頭的文字以產生物件。 (繼承來源 _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |