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.NumberFormat
Java 檔。
此頁面的部分是根據 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) |
|