クラスFormat

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

public abstract class Format extends Object implements Serializable, Cloneable
Formatは、日付、メッセージ、数値、リストなどのロケール依存情報を書式設定するための抽象ベース・クラスです。

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

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

サブクラス

Javaプラットフォームは、Formatの特殊なサブクラスを提供します。 -- DateFormat, MessageFormat, NumberFormatおよびListFormat--日付、メッセージ、数値およびリストをそれぞれ書式設定します。

具象サブクラスには、次の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などを参照してください。

Synchronization

フォーマットは同期化されません。 スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。 複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。

導入されたバージョン:
1.1
関連項目:
  • ネストされたクラスのサマリー

    ネストされたクラス
    修飾子と型
    クラス
    説明
    static class 
    Format.formatToCharacterIteratorから返されたAttributedCharacterIterator内の属性キー、およびFieldPosition内のフィールド識別子として使用する定数を定義します。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    唯一のコンストラクタです。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    このオブジェクトのコピーを作成して、返します。
    final String
    オブジェクトをフォーマットして文字列を作成します。
    abstract StringBuffer
    format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
    オブジェクトをフォーマットし、指定された文字列バッファに結果のテキストを追加します。
    Objectをフォーマットし、AttributedCharacterIteratorを生成します。
    指定された文字列の先頭からテキストを解析してオブジェクトを生成します。
    abstract Object
    指定された文字列からテキストを解析してオブジェクトを生成します。

    クラス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実装に依存しますが、通常、属性キーは属性値としても使用されます。

      APIのノート:
      フィールドをサポートするサブクラスはこれをオーバーライドし、有効な属性を持つ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 - sourceまたはposnullの場合。
    • parseObject

      public Object parseObject(String source) throws ParseException
      指定された文字列の先頭からテキストを解析してオブジェクトを生成します。 このメソッドは、指定された文字列のテキスト全体を使用することはできません。
      パラメータ:
      source - 最初から解析されるString
      戻り値:
      文字列から解析されるObject
      スロー:
      ParseException - 解析に失敗した場合
      NullPointerException - sourcenullの場合。
    • clone

      public Object clone()
      このオブジェクトのコピーを作成して、返します。
      オーバーライド:
      clone、クラスObject
      戻り値:
      このインスタンスの複製。
      関連項目: