public abstract class Format extends Object implements Serializable, Cloneable
Format
は、日付、メッセージ、数字などのロケールに依存する情報をフォーマットする abstract 基底クラスです。
Format
は、ロケールに依存する情報を String
にフォーマットするため (format
メソッド)、および String
を解析してオブジェクトに戻すため (parseObject
メソッド) のプログラミングインタフェースを定義するものです。
通常、format のparseObject
メソッドは、その format
メソッドによってフォーマットされた任意の文字列を解析できる必要があります。ただし、これが可能でない例外的な場合があります。たとえば、format
メソッドは間に区切り文字がない 2 つの隣接する整数値を生成する場合があります。この場合、parseObject
は各数字がどの数値に属するのかを示すことができません。
Java プラットフォームでは、日付、メッセージ、数字をそれぞれフォーマットするため、3 つの特殊なサブクラス DateFormat
、MessageFormat
、NumberFormat
が Format
に用意されています。
具象サブクラスには、次の 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
などを参照してください。
フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
修飾子と型 | クラスと説明 |
---|---|
static class |
Format.Field
Format.formatToCharacterIterator から返された AttributedCharacterIterator 内の属性キー、および FieldPosition 内のフィールド識別子として使用する定数を定義します。 |
修飾子 | コンストラクタと説明 |
---|---|
protected |
Format()
唯一のコンストラクタです。
|
修飾子と型 | メソッドと説明 |
---|---|
Object |
clone()
このオブジェクトのコピーを作成して、返します。
|
String |
format(Object obj)
オブジェクトをフォーマットして文字列を作成します。
|
abstract StringBuffer |
format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
オブジェクトをフォーマットし、指定された文字列バッファーに結果のテキストを追加します。
|
AttributedCharacterIterator |
formatToCharacterIterator(Object obj)
Object をフォーマットし、
AttributedCharacterIterator を生成します。 |
Object |
parseObject(String source)
指定された文字列の先頭からテキストを解析してオブジェクトを生成します。
|
abstract Object |
parseObject(String source, ParsePosition pos)
文字列からテキストを解析してオブジェクトを生成します。
|
public final String format(Object obj)
format
(obj, new StringBuffer(), new FieldPosition(0)).toString();
obj
- フォーマットするオブジェクトIllegalArgumentException
- 指定されたオブジェクトを Format でフォーマットできない場合public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
pos
引数がフォーマットによって使用されるフィールドを識別する場合は、その引数のインデックスは最初に検出されたフィールドの開始と終了に設定されます。obj
- フォーマットするオブジェクトtoAppendTo
- テキストを追加する位置pos
- フォーマットされたテキスト内のフィールドを識別する FieldPosition
toAppendTo
として渡される文字列バッファー。フォーマットされたテキストが追加されるNullPointerException
- toAppendTo
または pos
が null の場合IllegalArgumentException
- 指定されたオブジェクトを Format でフォーマットできない場合public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator
を生成します。返された AttributedCharacterIterator
を使用すると、結果の String を構築できるとともに、結果の String についての情報を判定できます。
AttributedCharacterIterator の各属性キーは Field
型です。AttributedCharacterIterator
内の各属性に対する正当な値の定義は、それぞれの Format
実装に依存しますが、通常、属性キーは属性値としても使用されます。
デフォルトの実装では、属性なしの AttributedCharacterIterator
が生成されます。フィールドをサポートするサブクラスはこれをオーバーライドし、有効な属性を持つ AttributedCharacterIterator
を生成します。
obj
- フォーマットするオブジェクトNullPointerException
- obj が null の場合。IllegalArgumentException
- 指定されたオブジェクトを Format でフォーマットできない場合。public abstract Object parseObject(String source, ParsePosition pos)
メソッドは pos
によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos
のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字を使用するとは限らない) のあとのインデックスに更新され、解析されたオブジェクトが返されます。更新された pos
は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos
のインデックスは変更されず、エラーが発生した文字のインデックスに pos
のエラーインデックスが設定され、null が返されます。
source
- 部分的に解析される String
。pos
- 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition
オブジェクトObject
。エラーの場合は null を返す。NullPointerException
- pos
が null である場合。public Object parseObject(String source) throws ParseException
source
- 先頭が解析される String
。Object
。ParseException
- 指定された文字列の先頭が解析できない場合。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.