JavaTM Platform
Standard Ed. 6

java.text
クラス Format

java.lang.Object
  上位を拡張 java.text.Format
すべての実装されたインタフェース:
Serializable, Cloneable
直系の既知のサブクラス:
DateFormat, MessageFormat, NumberFormat

public abstract class Format
extends Object
implements Serializable, Cloneable

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

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

通常、format の parseObject メソッドは、その format メソッドによってフォーマットされた任意の文字列を解析できる必要があります。ただし、これが可能でない例外的な場合があります。たとえば、format メソッドは間に区切り文字がない 2 つの隣接する整数値を生成する場合があります。 この場合、parseObject は各数字がどの数値に属するのかを示すことができません。

サブクラス化

Java プラットフォームでは、日付、メッセージ、数字をそれぞれフォーマットするため、3 つの特殊なサブクラス DateFormatMessageFormatNumberFormatFormat に用意されています。  

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

  1. format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
  2. formatToCharacterIterator(Object obj)
  3. parseObject (String source, ParsePosition pos)
これらの一般的なメソッドによって、オブジェクトのさまざまな解析とフォーマットが可能になります。 これらのメソッドは MessageFormat などによって使用されます。サブクラスは多くの場合、特定の入力タイプのための追加の format メソッドや特定の結果タイプのための parse メソッドも提供します。ParsePosition 引数をとらない parse は、要求されたフォーマットのテキストが入力テキストの先頭にない場合、ParseException をスローします。

ほとんどのサブクラスには、さらに以下のファクトリメソッドが実装されます。

  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, 直列化された形式

入れ子のクラスの概要
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)
          文字列からテキストを解析してオブジェクトを生成します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Format

protected Format()
唯一のコンストラクタです。サブクラスのコンストラクタによる呼び出し用で、通常は暗黙的に呼び出されます。

メソッドの詳細

format

public final String format(Object obj)
オブジェクトをフォーマットして文字列を作成します。これは以下の記述と同等です。
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 - 部分的に解析される String
pos - 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition オブジェクト
戻り値:
文字列から解析される Objectエラーの場合は null を返す
例外:
NullPointerException - pos が null の場合

parseObject

public Object parseObject(String source)
                   throws ParseException
指定された文字列の先頭からテキストを解析してオブジェクトを生成します。メソッドは指定された文字列のテキスト全体に使用されない場合もあります。

パラメータ:
source - 先頭が解析される String
戻り値:
文字列から解析される Object
例外:
ParseException - 指定された文字列の先頭が 解析できない場合

clone

public Object clone()
このオブジェクトのコピーを作成して、返します。

オーバーライド:
クラス Object 内の clone
戻り値:
このインスタンスの複製
関連項目:
Cloneable

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。