全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス
java.lang.Object | +----java.text.Format
Formatは、日付、メッセージ、数字などのロケールに依存する
情報をフォーマットするabstract基本クラスです。
 
 Formatは、ロケールに依存する情報を文字列にフォーマットするため(formatメソッド)と、文字列を解析してオブジェクトに戻す
ため(parseObjectメソッド)のプログラミングインターフェースを定義するものです。formatでフォーマットされた文字列は必ず、
parseObjectで解析できます。
 
指定する型のオブジェクトを Formatオブジェクトがフォーマット
できないためにフォーマット化が正常に行われないと、formatはIllegalArgumentExceptionをスローします。そうでなくても、
オブジェクトのフォーマットが正しくないと、formatは UNICODEの
置換文字 \\uFFFDを返します。
 
解析時に一致するものがないと、
parseObject(String) は ParseExceptionをスローします。
parseObject(String, ParsePosition) は、
 ParsePosition indexメンバを変更せずに nullを返します。
 
 サブクラス化:
 JDKでは、日付、メッセージ、数字をフォーマットする
ために Formatに3つの個別のサブクラス DateFormat、 MessageFormat、NumberFormatが用意されています。
 
個別のサブクラスには、次の2つのメソッドを実装しなければなりません 。
format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
 parseObject (String source, ParsePosition pos)
 ほとんどのサブクラスにはさらに次の2つのメソッドが実装されます。
getInstance。現在のロケールに適した
便利なフォーマットオブジェクトを入手するためのものです。
getInstance(Locale)。指定するロケールに適した
便利なフォーマットオブジェクトを入手するためのものです。
 getXxxxInstanceメソッドを実装する場合もあります。
たとえば、 NumberFormatクラスには、特殊な数字フォーマッタ
を得るために getPercentInstanceと getCurrencyInstance
メソッドがあります。
 ロケール用のオブジェクトをプログラマが作成できるよう
にする場合(たとえばgetInstance(Locale))は、
 Formatのサブクラスにさらに次のクラスメソッドの実装が
必要です。
 
public static Locale[] getAvailableLocales()
最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、一組の定数を定義することができます。これらの定数は、FieldPositionオブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果におけるフィールドの情報とその位置を識別します。これらの定数の名前は、item_FIELDでなければなりません。itemはそのフィールドを示します。これらの定数の例については、DateFormatの ERA_FIELDなどを参照してください。
 
 Format()
	Format()
   
 clone()
	clone()
   format(Object)
	format(Object)
   format(Object, StringBuffer, FieldPosition)
	format(Object, StringBuffer, FieldPosition)
   parseObject(String)
	parseObject(String)
   parseObject(String, ParsePosition)
	parseObject(String, ParsePosition)
   
 Format
Format
public Format()
 
 format
format
public final String format(Object obj)
StringBufferバージョンのフォーマットはサブクラスによってオーバーライドされます。
 format
format
  public abstract StringBuffer format(Object obj,
                                      StringBuffer toAppendTo,
                                      FieldPosition pos)
StringBuffer format (Number obj, StringBuffer toAppendTo) Number parse (String str)これらの一般的なルーチンによって、MessageFormatなどのオブジェクトに対し、さまざまな解析とフォーマットが可能です。
 parseObject
parseObject
  public abstract Object parseObject(String source,
                                     ParsePosition status)
       String format (Number obj);
       String format (long obj);
       String format (double obj);
       Number parse (String str);
 
これを呼び出す前に、ソースにおいて解析を開始するオフセットを、status.indexに設定する必要があります。呼び出した後、status.indexは、解析されたテキストの終わりにあります。エラーがあると、インデックスは変更されません。
解析の際、先行のスペースは捨てられます(解析が正常な場合)。後ろのスペースは元のままです。
例: "_12_xy" (_ はスペースを表す)を解析して数字を見つけると(インデックス = 0)、結果は数字12で、status.indexが3に更新されます(2つ目のスペースの前)。 2回目の解析では、"xy"が数字でないので、結果はParseExceptionになり、status.indexは3のままです。
一般にサブクラスでは特定の解析メソッドが提供されますが、それらによってさまざまな型の値が返されます。メソッドは戻り型にオーバーロードすることができないので、これらは一般に「解析」と呼ばれます。一方、このさまざまなメソッドは、常にparseObjectと呼ばれます。状態を取らない解析メソッドは、必要なフォーマットのテキストが開始位置になければ、ParseExceptionをスローする必要があります。
 parseObject
parseObject
public Object parseObject(String source) throws ParseException
 clone
clone
public Object clone()
全パッケージ クラス階層 このパッケージ 前項目 次項目 インデックス