JavaTM 2 Platform
Std. Ed. v1.3

java.text
クラス Format

java.lang.Object
  |
  +--java.text.Format
すべての実装インタフェース:
Cloneable, Serializable
直系の既知のサブクラス:
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) は、ParsePositionindex メンバを変更せずに null を返します。

サブクラス化: Java 2 プラットフォームでは、日付、メッセージ、数字をそれぞれフォーマットするため、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()
          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
 

コンストラクタの詳細

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()
Cloneable をオーバーライドします。
オーバーライド:
クラス Object 内の clone
クラス java.lang.Object からコピーされたタグ:
戻り値:
このインスタンスの複製
例外:
CloneNotSupportedException - オブジェクトのクラスが Cloneable インタフェースをサポートしていない場合。clone メソッドをオーバーライドしたサブクラスも、インスタンスを複製できないことを示すためにこの例外をスローすることがある
OutOfMemoryError - 十分なメモリがない場合
関連項目:
Cloneable

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

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.