ChoiceFormat 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
ChoiceFormat可讓您將格式附加至數字範圍。
[Android.Runtime.Register("java/text/ChoiceFormat", DoNotGenerateAcw=true)]
public class ChoiceFormat : Java.Text.NumberFormat
[<Android.Runtime.Register("java/text/ChoiceFormat", DoNotGenerateAcw=true)>]
type ChoiceFormat = class
inherit NumberFormat
- 繼承
- 屬性
備註
ChoiceFormat可讓您將格式附加至數字範圍。 它通常用於處理 MessageFormat 複數。 選擇是以遞增的雙精度浮點數清單指定,其中每個專案會指定下一個專案的半開啟間隔: <blockquote>
X matches j if and only if limit[j] ≤ X < limit[j+1]
</blockquote> 如果沒有相符專案,則會使用第一個或最後一個索引,視數位 (X) 太低或太高而定。 如果限制陣語不是以遞增順序排列,格式設定的結果將會不正確。 ChoiceFormat 也接受 \u221E 相當於無限大(INF)。
<strong>Note:</strong>ChoiceFormat 與使用建構函式建立Format物件的其他ChoiceFormat類別不同(不是使用getInstance樣式處理站方法)。 不需要處理站方法,因為 ChoiceFormat 不需要指定地區設定的任何複雜設定。 事實上, ChoiceFormat 不會實作任何地區設定特定行為。
建立 ChoiceFormat時,您必須指定格式陣列和限制數位。 這些陣列的長度必須相同。 例如,<ul><li><em>limits</em> = {1,2,3,4,5,6,7}<br><em>formats</em> = {“Sun”,“Mon”,“Tue”,“Wed”,“Thur”,“Fri”,“Sat”}li<><em limits>/em< = {0, 1, ChoiceFormat.nextDouble(1)}><br><>em formats</em> = {“no files”, “one file”, “many files”}<br> (nextDouble可用來取得下一個較高的雙精度浮點,讓半開啟間隔。 </ul>
以下是顯示格式化和剖析的簡單範例: <blockquote>
{@code
double[] limits = {1,2,3,4,5,6,7};
String[] dayOfWeekNames = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"};
ChoiceFormat form = new ChoiceFormat(limits, dayOfWeekNames);
ParsePosition status = new ParsePosition(0);
for (double i = 0.0; i <= 8.0; ++i) {
status.setIndex(0);
System.out.println(i + " -> " + form.format(i) + " -> "
+ form.parse(form.format(i),status));
}
}
</blockquote> 以下是更複雜的範例,其模式格式為: <blockquote>
{@code
double[] filelimits = {0,1,2};
String[] filepart = {"are no files","is one file","are {2} files"};
ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);
Format[] testFormats = {fileform, null, NumberFormat.getInstance()};
MessageFormat pattform = new MessageFormat("There {0} on {1}");
pattform.setFormats(testFormats);
Object[] testArgs = {null, "ADisk", null};
for (int i = 0; i < 4; ++i) {
testArgs[0] = new Integer(i);
testArgs[2] = testArgs[0];
System.out.println(pattform.format(testArgs));
}
}
</區塊引用>
指定 ChoiceFormat 物件的模式相當簡單。 例如: <blockquote>
{@code
ChoiceFormat fmt = new ChoiceFormat(
"-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+ |2#is two |2<is more than 2.");
System.out.println("Formatter Pattern : " + fmt.toPattern());
System.out.println("Format with -INF : " + fmt.format(Double.NEGATIVE_INFINITY));
System.out.println("Format with -1.0 : " + fmt.format(-1.0));
System.out.println("Format with 0 : " + fmt.format(0));
System.out.println("Format with 0.9 : " + fmt.format(0.9));
System.out.println("Format with 1.0 : " + fmt.format(1));
System.out.println("Format with 1.5 : " + fmt.format(1.5));
System.out.println("Format with 2 : " + fmt.format(2));
System.out.println("Format with 2.1 : " + fmt.format(2.1));
System.out.println("Format with NaN : " + fmt.format(Double.NaN));
System.out.println("Format with +INF : " + fmt.format(Double.POSITIVE_INFINITY));
}
</blockquote> 和輸出結果如下所示: <blockquote>
{@code
Format with -INF : is negative
Format with -1.0 : is negative
Format with 0 : is zero or fraction
Format with 0.9 : is zero or fraction
Format with 1.0 : is one
Format with 1.5 : is 1+
Format with 2 : is two
Format with 2.1 : is more than 2.
Format with NaN : is negative
Format with +INF : is more than 2.
}
</區塊引用>
<h2>“synchronization”>Synchronization</h2>
選擇格式不會同步處理。 建議為每個線程建立個別的格式實例。 如果多個線程同時存取格式,則必須在外部同步處理。
已在1.1中新增。
的 java.text.ChoiceFormatJava 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
| 名稱 | Description |
|---|---|
| ChoiceFormat(Double[], String[]) |
使用限制和對應的格式建構。 |
| ChoiceFormat(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
| ChoiceFormat(String) |
根據模式,使用限制和對應的格式建構。 |
欄位
| 名稱 | Description |
|---|---|
| FractionField |
用來建構 FieldPosition 物件的欄位常數。 (繼承來源 NumberFormat) |
| IntegerField |
用來建構 FieldPosition 物件的欄位常數。 (繼承來源 NumberFormat) |
屬性
| 名稱 | Description |
|---|---|
| Class |
傳回這個 |
| Currency |
取得格式化貨幣值時,這個數位格式所使用的貨幣。 -或- 設定格式化貨幣值時,這個數位格式所使用的貨幣。 (繼承來源 NumberFormat) |
| GroupingUsed |
如果以此格式使用群組,則傳回 true。 -或- 設定是否要使用這個格式的群組。 (繼承來源 NumberFormat) |
| Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| MaximumFractionDigits |
傳回數位分數部分所允許的最大位數。 -或- 設定數字分數部分所允許的最大位數。 (繼承來源 NumberFormat) |
| MaximumIntegerDigits |
傳回數位整數部分所允許的最大位數。 -或- 設定數位整數部分所允許的最大位數。 (繼承來源 NumberFormat) |
| MinimumFractionDigits |
傳回數位分數部分所允許的最小位數。 -或- 設定數字分數部分所允許的最小位數。 (繼承來源 NumberFormat) |
| MinimumIntegerDigits |
傳回數位整數部分所允許的最小位數。 -或- 設定數位整數部分所允許的最小位數。 (繼承來源 NumberFormat) |
| ParseIntegerOnly |
如果這個格式只會將數位剖析為整數,則傳回 true。 -或- 設定是否應該只將數位剖析為整數。 (繼承來源 NumberFormat) |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| RoundingMode |
|
| ThresholdClass |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
| ThresholdType |
此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。 |
方法
| 名稱 | Description |
|---|---|
| ApplyPattern(String) |
設定模式。 |
| Clone() |
建立並傳回這個 對象的複本。 (繼承來源 _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
| Format(Double, StringBuffer, FieldPosition) |
傳回具有格式化雙精度浮點數的模式。 |
| Format(Double) |
格式的特製化。 (繼承來源 NumberFormat) |
| Format(Int64, StringBuffer, FieldPosition) |
格式的特製化。 |
| Format(Int64) |
格式的特製化。 (繼承來源 NumberFormat) |
| Format(Object, StringBuffer, FieldPosition) |
格式化數位,並將產生的文字附加至指定的字串緩衝區。 (繼承來源 NumberFormat) |
| Format(Object) |
格式化 物件以產生字串。 (繼承來源 _Format) |
| FormatToCharacterIterator(Object) |
格式化產生的物件 |
| GetFormats() |
傳回與這個 |
| GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
| GetLimits() |
傳回這個 |
| JavaFinalize() |
已淘汰.
當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。 (繼承來源 Object) |
| NextDouble(Double, Boolean) |
尋找大於 |
| NextDouble(Double) |
尋找大於 |
| Notify() |
喚醒正在等候此物件監視器的單一線程。 (繼承來源 Object) |
| NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
| Parse(String, ParsePosition) |
從輸入文字剖析數位。 |
| Parse(String) |
剖析指定字串開頭的文字,以產生數位。 (繼承來源 NumberFormat) |
| ParseObject(String, ParsePosition) |
剖析字串中的文字以產生 |
| ParseObject(String) |
從指定字串的開頭剖析文字,以產生 物件。 (繼承來源 _Format) |
| PreviousDouble(Double) |
尋找小於 |
| SetChoices(Double[], String[]) |
設定格式化時要使用的選項。 |
| SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToPattern() |
取得模式。 |
| 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) |
試著強制 |