全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.text.Format | +----java.text.NumberFormat | +----java.text.ChoiceFormat
ChoiceFormat
では、ある範囲の数値にフォーマットを関係付けることができます。これは通常、複数のものを扱うときに MessageFormat
で使用します。この選択項目は doubleの昇順リストで指定され、それぞれの項目は、次の項目までの一方が開いた間隔を指定します。
一致するものがないと、数値(X)が小さ過ぎるか大き過ぎるかによって、最初か最後のインデックスが使用されます。X matches j if and only if limit[j] <= X < limit[j+1]
Note:
ChoiceFormat
は、他の Format
クラスとは次の点で異なります。すなわち、ChoiceFormat
オブジェクトは、getInstance
スタイルファクトリメソッドではなく、構築子で作成するということです。ChoiceFormat
では、与えたれたロケールに対して複雑なセットアップは必要ありませんので、ファクトリメソッドは不要です。実際、ChoiceFormat
には、ロケール固有の動作は実装されません。
ChoiceFormat
を作成する場合には、フォーマットの配列とリミットの配列を指定する必要があります。これらの配列の長さは同じでなければなりません。たとえば、次はその例です。
nextDouble
can be used to get the next higher double, to
make the half-open interval.)
次に、フォーマットと解析を行う簡単な例を示します。
次に、パターンフォーマットを使うもっと複雑な例を示します。double[] limits = {1,2,3,4,5,6,7}; String[] monthNames = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"}; ChoiceFormat form = new ChoiceFormat(limits, monthNames); 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)); }
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)); }
public ChoiceFormat(String newPattern)
public ChoiceFormat(double limits[], String formats[])
public void applyPattern(String newPattern)
public String toPattern()
public void setChoices(double limits[], String formats[])
public double[] getLimits()
public Object[] getFormats()
public StringBuffer format(long number, StringBuffer toAppendTo, FieldPosition status)
format(double, StringBuffer, FieldPosition)
を呼び出します。したがって、サポートされる longの範囲は、doubleで格納できる範囲に限られます。これが実際的な制限となることはありません。
public StringBuffer format(double number, StringBuffer toAppendTo, FieldPosition status)
public Number parse(String text, ParsePosition status)
public static final double nextDouble(double d)
一方が開いた間隔を作るのに使用します。
public static final double previousDouble(double d)
public Object clone()
public int hashCode()
public boolean equals(Object obj)
public static double nextDouble(double d, boolean positive)
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス