|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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
を返します。
サブクラス化:
Java 2 プラットフォームでは、日付、メッセージ、数字をそれぞれフォーマットするため、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()
最後に、サブクラスには、フォーマットされたさまざまな出力フィールドを識別するために、1 組の定数を定義することができます。これらの定数は、FieldPosition オブジェクトを作成するために使われます。このオブジェクトは、フォーマットされた結果でのフィールドの情報とその位置を識別します。これらの定数の名前は、item_FIELD
でなければなりません。item
はそのフィールドを示します。これらの定数の例については、DateFormat
の ERA_FIELD
などを参照してください。
ParsePosition
,
FieldPosition
,
NumberFormat
,
DateFormat
,
MessageFormat
, 直列化された形式コンストラクタの概要 | |
Format()
|
メソッドの概要 | |
Object |
clone()
Cloneable をオーバーライドします。 |
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 |
コンストラクタの詳細 |
public Format()
メソッドの詳細 |
public final String format(Object obj)
StringBuffer バージョンのフォーマットはサブクラスによってオーバーライドされます。
obj
- フォーマットするオブジェクトIllegalArgumentException
- Format がこの型のオブジェクトをフォーマットできない場合MessageFormat
,
format(Object, StringBuffer, FieldPosition)
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
StringBuffer format (Number obj, StringBuffer toAppendTo) Number parse (String str)これらの汎用ルーチンによって、MessageFormat などのオブジェクトに対して、さまざまな解析とフォーマットが可能になります。
obj
- フォーマットするオブジェクトtoAppendTo
- テキストを追加する位置pos
- 入力では、必要な場合の位置合わせフィールド。出力では、位置合わせフィールドのオフセットIllegalArgumentException
- 指定されたオブジェクトを Format でフォーマットできない場合MessageFormat
,
FieldPosition
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 をスローする必要があります。
ParsePosition
public Object parseObject(String source) throws ParseException
ParseException
- 指定された文字列が無効な場合public Object clone()
Object
内の clone
java.lang.Object
からコピーされたタグ:CloneNotSupportedException
- オブジェクトのクラスが Cloneable
インタフェースをサポートしていない場合。clone
メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがあるOutOfMemoryError
- 十分なメモリがない場合Cloneable
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.