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 - フォーマットされたテキスト内のフィールドを識別するFieldPositiontoAppendToとして渡される文字列バッファ。フォーマットされたテキストが追加される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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。