Java プラットフォーム 1.2

java.text
クラス Format

java.lang.Object
  |
  +--java.text.Format
直接の既知のサブクラス:
DateFormat, MessageFormat, NumberFormat

public abstract class Format
extends Object
implements Serializable, Cloneable

Format は、日付、メッセージ、数字などのロケールに依存する情報をフォーマットする abstract 基底クラスです。

Format は、ロケールに依存する情報を文字列にフォーマットするため (format メソッド)、および文字列を解析してオブジェクトに戻すため (parseObject メソッド) のプログラミングインタフェースを定義するものです。format でフォーマットされた文字列は、parseObject で解析できることが保証されます。

指定された型のオブジェクトを Format オブジェクトがフォーマットできないことが原因でフォーマットが正常に行われないと、formatIllegalArgumentException をスローします。また、オブジェクトのフォーマットが正しくないと、format は Unicode の置換文字 ¥¥uFFFD を返します。

解析時に一致するものがないと、parseObject(String)ParseException をスローします。parseObject(String, ParsePosition) は、ParsePosition index メンバを変更せずに null を返します。

サブクラス化: JDK では、日付、メッセージ、数字をフォーマットするために、Format に 3 つの具象サブクラス DateFormatMessageFormatNumberFormat が用意されています。

具象サブクラスには、次の 2 つのメソッドを実装しなければなりません。

  1. format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
  2. parseObject (String source, ParsePosition pos)

ほとんどのサブクラスにはさらに次の 2 つのメソッドが実装されます。

  1. getInstance は、現在のロケールに適した便利なフォーマットオブジェクトを取得するためのものです。
  2. getInstance(Locale) は、指定されたロケールに適した便利なフォーマットオブジェクトを取得するためのものです。
また、サブクラスによっては、さらに特殊な制御のために、ほかの getXxxxInstance メソッドを実装する場合もあります。たとえば、NumberFormat クラスには、特殊な数字フォーマッタを得るための getPercentInstance および getCurrencyInstance メソッドがあります。

ロケール用のオブジェクトをプログラマが作成できるようにする場合 (getInstance(Locale) など) は、Format のサブクラスにさらに次のクラスメソッドの実装が必要です。

 public static Locale[] getAvailableLocales()
 

最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、1 組の定数を定義することができます。これらの定数は、FieldPosition オブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果でのフィールドの情報とその位置を識別します。これらの定数の名前は、item_FIELD でなければなりません。item はそのフィールドを示します。これらの定数の例については、DateFormatERA_FIELD などを参照してください。

関連項目:
ParsePosition, FieldPosition, NumberFormat, DateFormat, MessageFormat, 直列化された形式

コンストラクタの概要
Format()
           
 
メソッドの概要
 Object clone()
           
 String format(Object obj)
          オブジェクトをフォーマットして文字列を作成します。
abstract  StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
          オブジェクトをフォーマットして文字列を作成します。
 Object parseObject(String source)
          文字列を解析してオブジェクトを作成します。
abstract  Object parseObject(String source, ParsePosition status)
          文字列を解析してオブジェクトを作成します。
 
クラス java.lang.Object から継承したメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Format

public Format()
メソッドの詳細

format

public final String format(Object obj)
オブジェクトをフォーマットして文字列を作成します。

StringBuffer バージョンのフォーマットはサブクラスによってオーバーライドされます。

パラメータ:
obj - フォーマットするオブジェクト
戻り値:
フォーマットされた文字列
例外:
IllegalArgumentException - Format がこの型のオブジェクトをフォーマットできない場合
関連項目:
MessageFormat, format(Object, StringBuffer, FieldPosition)

format

public abstract StringBuffer format(Object obj,
                                    StringBuffer toAppendTo,
                                    FieldPosition pos)
オブジェクトをフォーマットして文字列を作成します。特定のオブジェクトに対して、サブクラスには次のようなものが実装されます。
 StringBuffer format (Number obj, StringBuffer toAppendTo)
 Number parse (String str)
 
これらの汎用ルーチンによって、MessageFormat などのオブジェクトに対して、さまざまな解析とフォーマットが可能になります。
パラメータ:
obj - フォーマットするオブジェクト
toAppendTo - テキストを追加する位置
pos - 入力の場合は位置合わせフィールド (必要な場合)。出力の場合は位置合わせフィールドのオフセット
戻り値:
toAppendTo として渡される値 (これによって、StringBuffer.append() と同じようにチェーンが可能になる)
例外:
IllegalArgumentException - 指定されたオブジェクトを Format でフォーマットできない場合
関連項目:
MessageFormat, FieldPosition

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 - 入力-出力パラメータ

これを呼び出す前に、ソースにおいて解析を開始するオフセットを、status.index に設定する必要があります。呼び出したあと、status.index は、解析されたテキストの終わりにあります。エラーがあるとインデックスは変更されません。

解析の際、先行のスペースは捨てられます (解析が正常な場合)。後ろのスペースは元のままです。

例: 「_12_xy」(_ はスペースを表す) を解析して数字を見つけると (インデックス = 0)、結果は数字 12 で、status.index が 3 に更新されます (2 つ目のスペースの前)。2 回目の解析では、「xy」が数字ではないので、結果は ParseException になり、status.index は 3 のままです。

一般にサブクラスでは特定の解析メソッドが提供されますが、それらによってさまざまな型の値が返されます。メソッドは戻り型にオーバーロードすることができないので、これらは一般に parse と呼ばれます。一方、このさまざまなメソッドは、常に parseObject と呼ばれます。状態を取らない解析メソッドは、必要なフォーマットのテキストが開始位置になければ、ParseException をスローする必要があります。

戻り値:
文字列から解析されたオブジェクト。エラーの場合は null
関連項目:
ParsePosition

parseObject

public Object parseObject(String source)
                   throws ParseException
文字列を解析してオブジェクトを作成します。
例外:
ParseException - 指定された文字列が無効な場合

clone

public Object clone()
オーバーライド:
クラス Object 内の clone

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.