クラスFormat
- すべての実装されたインタフェース:
Serializable,Cloneable
- 直系の既知のサブクラス:
DateFormat,ListFormat,MessageFormat,NumberFormat
Formatは、日付、メッセージ、数値、リストなどのロケール依存情報を書式設定するための抽象ベース・クラスです。
Formatは、ロケールに依存する情報をStringにフォーマットするため(formatメソッド)、およびStringを解析してオブジェクトに戻すため(parseObjectメソッド)のプログラミング・インタフェースを定義するものです。
通常、formatのparseObjectメソッドは、そのformatメソッドによってフォーマットされた任意の文字列を解析できる必要があります。 ただし、これが可能でない例外的な場合があります。 たとえば、formatメソッドは間に区切り文字がない2つの隣接する整数値を生成する場合があります。この場合、parseObjectは各数字がどの数値に属するのかを示すことができません。
サブクラス
Javaプラットフォームは、Formatの特殊なサブクラスを提供します。 -- DateFormat, MessageFormat, NumberFormatおよびListFormat--日付、メッセージ、数値およびリストをそれぞれ書式設定します。
具象サブクラスには、次の3つのメソッドを実装しなければいけません。
-
format(Object obj, StringBuffer toAppendTo, FieldPosition pos) -
formatToCharacterIterator(Object obj) -
parseObject(String source, ParsePosition pos)
MessageFormatなどによって使用されます。 サブクラスは多くの場合、特定の入力タイプのための追加のformatメソッドや特定の結果タイプのためのparseメソッドも提供します。 ParsePosition引数をとらないparseは、要求されたフォーマットのテキストが入力テキストの先頭にない場合、ParseExceptionをスローします。
ほとんどのサブクラスには、さらに次のファクトリ・メソッドが実装されます。
-
getInstanceは、現在のロケールに適した便利なフォーマット・オブジェクトを取得するためのものです。 -
getInstance(Locale)は、指定されたロケールに適した便利なフォーマット・オブジェクトを取得するためのものです。
getXxxxInstanceメソッドを実装する場合もあります。 たとえば、NumberFormatクラスには、特殊な数字フォーマッタを得るためのgetPercentInstanceおよびgetCurrencyInstanceメソッドがあります。
ロケール用のオブジェクトをプログラマが生成できるようにする場合(getInstance(Locale)など)は、Formatのサブクラスにさらに次のクラス・メソッドの実装が必要です。
public static Locale[] getAvailableLocales()
サブクラスでは、解析時に非厳密の実装も検討できます。 非厳密の定義は、サブクラスに委任する必要があります。
最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、1組の定数を定義することができます。 これらの定数は、FieldPositionオブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果でのフィールドの情報とその位置を識別します。 これらの定数の名前は、item_FIELDでなければいけません。itemはそのフィールドを示します。 これらの定数の例については、DateFormatのERA_FIELDなどを参照してください。
Synchronization
フォーマットは同期化されません。 スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。 複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
- 導入されたバージョン:
- 1.1
- 関連項目:
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static classFormat.formatToCharacterIteratorから返されたAttributedCharacterIterator内の属性キー、およびFieldPosition内のフィールド識別子として使用する定数を定義します。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明clone()このオブジェクトのコピーを作成して、返します。final Stringオブジェクトをフォーマットして文字列を作成します。abstract StringBufferformat(Object obj, StringBuffer toAppendTo, FieldPosition pos) オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。Objectをフォーマットし、AttributedCharacterIteratorを生成します。parseObject(String source) 指定された文字列の先頭からテキストを解析してオブジェクトを生成します。abstract ObjectparseObject(String source, ParsePosition pos) 指定された文字列からテキストを解析してオブジェクトを生成します。
-
コンストラクタの詳細
-
Format
protected Format()唯一のコンストラクタです。 (サブクラスのコンストラクタによる呼出し用で、通常は暗黙的に呼び出されます。)
-
-
メソッドの詳細
-
format
オブジェクトをフォーマットして文字列を作成します。 これは次の記述と同等です。format(obj, new StringBuffer(), new FieldPosition(0)).toString();- パラメータ:
obj- フォーマットするオブジェクト- 戻り値:
- フォーマットされた文字列。
- 例外:
IllegalArgumentException- 指定されたオブジェクトをFormatでフォーマットできない場合
-
format
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos) オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。pos引数がフォーマットによって使用されるフィールドを識別する場合は、その引数のインデックスは最初に検出されたフィールドの開始と終了に設定されます。- パラメータ:
obj- フォーマットするオブジェクトtoAppendTo- テキストを追加する位置pos- フォーマットされたテキスト内のフィールドを識別するFieldPosition- 戻り値:
toAppendToとして渡される文字列バッファ。フォーマットされたテキストが追加される- 例外:
NullPointerException-toAppendToまたはposがnullの場合IllegalArgumentException- 指定されたオブジェクトをFormatでフォーマットできない場合
-
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj) Objectをフォーマットし、AttributedCharacterIteratorを生成します。 返されたAttributedCharacterIteratorを使用すると、結果のStringを構築できるとともに、結果のStringについての情報を判定できます。AttributedCharacterIteratorの各属性キーは
Field型です。AttributedCharacterIterator内の各属性に対する正当な値の定義は、それぞれのFormat実装に依存しますが、通常、属性キーは属性値としても使用されます。デフォルトの実装では、属性なしの
AttributedCharacterIteratorが生成されます。 フィールドをサポートするサブクラスはこれをオーバーライドし、有効な属性を持つAttributedCharacterIteratorを生成します。- パラメータ:
obj- フォーマットするオブジェクト- 戻り値:
- フォーマットされた値を説明するAttributedCharacterIterator。
- 例外:
NullPointerException- objがnullの場合。IllegalArgumentException- 指定されたオブジェクトをFormatでフォーマットできない場合。- 導入されたバージョン:
- 1.4
-
parseObject
public abstract Object parseObject(String source, ParsePosition pos) 指定された文字列からテキストを解析してオブジェクトを生成します。このメソッドは、
posで指定されたインデックスから始まるテキストを解析しようとします。 解析が完了すると、posのインデックスは、使用された最後の文字(解析では、文字列の最後までのすべての文字を使用するとは限らない)のあとのインデックスに更新され、解析されたオブジェクトが返されます。 更新されたposは、このメソッドの次の呼出しの開始点を示すのに使用できます。 エラーが発生した場合、posのインデックスは変更されず、posのエラー・インデックスはエラーが発生した文字のインデックスに設定され、nullが返されます。- パラメータ:
source- 解析するStringpos- 上記のインデックスおよびエラー・インデックス情報を持つParsePositionオブジェクト- 戻り値:
- 文字列から解析される
Object。 エラーの場合は、nullを返します。 - 例外:
NullPointerException-sourceまたはposがnullの場合。
-
parseObject
public Object parseObject(String source) throws ParseException 指定された文字列の先頭からテキストを解析してオブジェクトを生成します。 このメソッドは、指定された文字列のテキスト全体を使用することはできません。- パラメータ:
source- 最初から解析されるString。- 戻り値:
- 文字列から解析される
Object。 - 例外:
ParseException- 解析に失敗した場合NullPointerException-sourceがnullの場合。
-
clone
-