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 的數位,請使用其中一個 Factory 類別方法: <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 延伸模組,則會覆寫用於格式化的十進位數位和/或國家/地區。
您也可以使用 NumberFormat 來剖析數位: <blockquote>
{@code
myNumber = nf.parse(myString);
}
</blockquote> 使用 getInstance 或 getNumberInstance 取得一般數位格式。 使用 getIntegerInstance 來取得整數數位格式。 使用 getCurrencyInstance 來取得貨幣號碼格式。 使用 getCompactNumberInstance 取得精簡的數位格式,以較短的格式格式化數位。 例如,2000可以在 中java.util.Locale#US US locale格式化為 "2K" 。 用來 getPercentInstance 取得顯示百分比的格式。 使用此格式時,0.53 之類的分數會顯示為53%。
您也可以使用 這類方法 setMinimumFractionDigits來控制數字的顯示。 如果您想要對格式或剖析有更多的控制權,或想要為使用者提供更多控制權,您可以嘗試將 您從處理站方法取得的 DecimalFormat 轉換成 NumberFormat ,或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,ParsePosition並FieldPosition允許您:ul<>li 逐漸剖析字串<的片段 li>> 對齊小數點和其他區域 </ul> 例如,您可以用兩種方式來對齊數位:<<ol<>li> 如果您使用單空格字型搭配對齊間距,則可以在格式呼叫中傳遞 。FieldPosition format 使用 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 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
欄位
| 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 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| 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 <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
| Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
| Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</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) |
|