JavaTM Platform
Standard Ed. 6

java.text
クラス MessageFormat

java.lang.Object
  上位を拡張 java.text.Format
      上位を拡張 java.text.MessageFormat
すべての実装されたインタフェース:
Serializable, Cloneable

public class MessageFormat
extends Format

MessageFormat は、連結されたメッセージを、言語に依存しない方法で構築するためのものです。エンドユーザー用に表示するメッセージは、この方法で構築してください。

MessageFormat は、1 組のオブジェクトをフォーマットし、フォーマットした文字列をパターンの適切な場所に挿入します。

注: MessageFormat がほかの Format クラスと異なる点は、MessageFormat オブジェクトを (getInstance スタイルのファクトリメソッドではなく) そのコンストラクタの 1 つで作成するということです。MessageFormat では、ロケール固有の動作は実装されていないので、ファクトリメソッドは必要ありません。ロケール固有の動作は、提供するパターンおよび挿入された引数に使用するサブフォーマットによって定義されます。

パターンとその解釈

MessageFormat は次のパターンを使用します。
 MessageFormatPattern:
         String
         MessageFormatPattern FormatElement String

 FormatElement:
         { ArgumentIndex }
         { ArgumentIndex , FormatType }
         { ArgumentIndex , FormatType , FormatStyle }

 FormatType: one of 
         number date time choice

 FormatStyle:
         short
         medium
         long
         full
         integer
         currency
         percent
         SubformatPattern

 String:
         StringPartopt
         String StringPart

 StringPart:
         ''
         ' QuotedString '
         UnquotedString

 SubformatPattern:
         SubformatPatternPartopt
         SubformatPattern SubformatPatternPart

 SubFormatPatternPart:
         ' QuotedPattern '
         UnquotedPattern
 

String 内では、「''」は単一引用符を表します。QuotedString は単一引用符を除く任意の文字を含みます。 囲んでいる単一引用符は削除されます。UnquotedString は、単一引用符と左大括弧を除く任意の文字を含みます。したがって、フォーマットされたメッセージで「'{0}'」になる文字列は、「'''{'0}''」または「'''{0}'''」と記述します。  

SubformatPattern 内では異なるルールが適用されます。QuotedPattern は単一引用符以外の任意の文字を含みますが、囲んでいる単一引用符は削除されません。 このため単一引用符はサブフォーマットによって解釈されます。たとえば、「{1,number,$'#',##}」と指定すると、ハッシュ記号 (#) が付いた数値フォーマットが生成されます。 結果は、「$#31,45」のようになります。"$#31,45". UnquotedPattern は、単一引用符以外の任意の文字を含みますが、その中の中括弧はペアになっている必要があります。たとえば、「ab {0} de」と「ab '}' de」は有効なサブフォーマットパターンですが、「ab {0'}' de」と「ab } de」は無効です。  

警告:
メッセージフォーマットパターン内での引用符の使用規則は、あまり明快ではありません。特に、単一引用符を二重にする必要の有無がローカライザにとっては明らかでないこともあります。ローカライザに規則について情報を提供し、リソースにバンドルされるソースファイル内のコメントなどによって、どの文字列が MessageFormat で処理されるのかを示すようにしてください。ローカライザは、変換した文字列でオリジナルのバージョンにはない単一引用符を使用しなければならない場合があります。

ArgumentIndex 値は、数字 0 〜 9 を使用して記述した 0 以上の整数です。format メソッドに渡された arguments 配列または parse メソッドによって返された結果の配列のインデックスを表します。  

FormatType および FormatStyle 値は、フォーマット要素の Format インスタンスの生成に使用します。次の表に、Format インスタンスへの値のマップについて示します。表にない組み合わせは使用できません。SubformatPattern は、使用する Format サブクラスに対して有効なパターン文字列でなければなりません。  

フォーマット型 フォーマットスタイル 生成されるサブフォーマット
(なし) (なし) null
number (なし) NumberFormat.getInstance(getLocale())
integer NumberFormat.getIntegerInstance(getLocale())
currency NumberFormat.getCurrencyInstance(getLocale())
percent NumberFormat.getPercentInstance(getLocale())
SubformatPattern new DecimalFormat(subformatPattern, DecimalFormatSymbols.getInstance(getLocale()))
date (なし) DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
short DateFormat.getDateInstance(DateFormat.SHORT, getLocale())
medium DateFormat.getDateInstance(DateFormat.DEFAULT, getLocale())
long DateFormat.getDateInstance(DateFormat.LONG, getLocale())
full DateFormat.getDateInstance(DateFormat.FULL, getLocale())
SubformatPattern new SimpleDateFormat(subformatPattern, getLocale())
time (なし) DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
short DateFormat.getTimeInstance(DateFormat.SHORT, getLocale())
medium DateFormat.getTimeInstance(DateFormat.DEFAULT, getLocale())
long DateFormat.getTimeInstance(DateFormat.LONG, getLocale())
full DateFormat.getTimeInstance(DateFormat.FULL, getLocale())
SubformatPattern new SimpleDateFormat(subformatPattern, getLocale())
choice SubformatPattern new ChoiceFormat(subformatPattern)

使用例

次にいくつかの使用例を示します。もちろん実際の国際化されたプログラムでは、メッセージフォーマットパターンやその他の静的な文字列はリソースバンドルから取得されます。その他のパラメータは実行時に動的に決定されます。  

最初の例では、static メソッド MessageFormat.format を使用しています。 このメソッドは内部的に、1 度限りの使用目的で MessageFormat インスタンスを作成します。

 int planet = 7;
 String event = "a disturbance in the Force";

 String result = MessageFormat.format(
     "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
     planet, new Date(), event);
 
出力結果は次のようになります。
 At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.
 

次の例では、繰り返し使用可能な MessageFormat インスタンスを作成しています。

 int fileCount = 1273;
 String diskName = "MyDisk";
 Object[] testArgs = {new Long(fileCount), diskName};

 MessageFormat form = new MessageFormat(
     "The disk \"{1}\" contains {0} file(s).");

 System.out.println(form.format(testArgs));
 
fileCount にさまざまな値を設定した場合の出力結果を次に示します。
 The disk "MyDisk" contains 0 file(s).
 The disk "MyDisk" contains 1 file(s).
 The disk "MyDisk" contains 1,273 file(s).
 

より高度なパターンを実現したければ、ChoiceFormat を使用することで、単数と複数に対してそれぞれ適切な形式を生成できます。

 MessageFormat form = new MessageFormat("The disk \"{1}\" contains {0}.");
 double[] filelimits = {0,1,2};
 String[] filepart = {"no files","one file","{0,number} files"};
 ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);
 form.setFormatByArgumentIndex(0, fileform);

 int fileCount = 1273;
 String diskName = "MyDisk";
 Object[] testArgs = {new Long(fileCount), diskName};

 System.out.println(form.format(testArgs));
 
fileCount にさまざまな値を設定した場合の出力結果を次に示します。
 The disk "MyDisk" contains no files.
 The disk "MyDisk" contains one file.
 The disk "MyDisk" contains 1,273 files.
 

上の例のように ChoiceFormat をプログラム的に作成できますが、次のようにパターンを使用することもできます。詳細は ChoiceFormat を参照してください。

 form.applyPattern(
    "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.");
 

注: 上記からわかるように、MessageFormatChoiceFormat によって生成される文字列の扱いはかなり特殊です。 「{」の存在によってサブフォーマットであることを示し、再帰処理を行なっています。MessageFormat と ChoiceFormat を両方とも (文字列パターンとしてではなく) プログラム的に作成する場合には、再帰的に繰り返すフォーマットを作成して永久ループに陥らないように注意してください。  

1 つの引数が文字列内で複数回解析されると、最後に一致するものが解析の最終結果になります。次に例を示します。

 MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}");
 Object[] objs = {new Double(3.1415)};
 String result = mf.format( objs );
 // result now equals "3.14, 3.1"
 objs = null;
 objs = mf.parse(result, new ParsePosition(0));
 // objs now equals {new Double(3.1)}
 

同様に、同じ引数が複数回出てくるパターンを使って MessageFormat オブジェクトを解析すると、最後に一致するものが返されます。次に例を示します。

 MessageFormat mf = new MessageFormat("{0}, {0}, {0}");
 String forParsing = "x, y, z";
 Object[] objs = mf.parse(forParsing, new ParsePosition(0));
 // result now equals {new String("z")}
 

同期

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

関連項目:
Locale, Format, NumberFormat, DecimalFormat, ChoiceFormat, 直列化された形式

入れ子のクラスの概要
static class MessageFormat.Field
          MessageFormat.formatToCharacterIterator から返された AttributedCharacterIterator 内の属性キーとして使用する定数を定義します。
 
コンストラクタの概要
MessageFormat(String pattern)
          デフォルトロケールと指定されたパターンのための MessageFormat を構築します。
MessageFormat(String pattern, Locale locale)
          指定されたロケールとパターンのための MessageFormat を構築します。
 
メソッドの概要
 void applyPattern(String pattern)
          このメッセージフォーマットによって使用されるパターンを設定します。
 Object clone()
          このオブジェクトのコピーを作成して、返します。
 boolean equals(Object obj)
          2 つのメッセージフォーマットオブジェクトの間の等号比較です。
 StringBuffer format(Object[] arguments, StringBuffer result, FieldPosition pos)
          オブジェクトの配列をフォーマットし、提供された StringBuffer に、フォーマット要素をフォーマットされたオブジェクトによって置き換えて MessageFormat のパターンを追加します。
 StringBuffer format(Object arguments, StringBuffer result, FieldPosition pos)
          オブジェクトの配列をフォーマットし、提供された StringBuffer に、フォーマット要素をフォーマットされたオブジェクトによって置き換えて MessageFormat のパターンを追加します。
static String format(String pattern, Object... arguments)
          指定されたパターンを使って MessageFormat を作成し、それを使用して指定された引数をフォーマットします。
 AttributedCharacterIterator formatToCharacterIterator(Object arguments)
          オブジェクトの配列をフォーマットし、それを MessageFormat のパターンに挿入して、AttributedCharacterIterator を生成します。
 Format[] getFormats()
          あらかじめ設定されたパターン文字列内のフォーマット要素に使用されるフォーマットを取得します。
 Format[] getFormatsByArgumentIndex()
          format メソッドに渡される値または parse メソッドから返された値に使用されるフォーマットを取得します。
 Locale getLocale()
          サブフォーマットを作成または比較する場合に使用されるロケールを取得します。
 int hashCode()
          メッセージフォーマットオブジェクトのハッシュコードを生成します。
 Object[] parse(String source)
          指定された文字列の先頭からテキストを解析してオブジェクト配列を生成します。
 Object[] parse(String source, ParsePosition pos)
          文字列を解析します。
 Object parseObject(String source, ParsePosition pos)
          文字列からテキストを解析してオブジェクト配列を生成します。
 void setFormat(int formatElementIndex, Format newFormat)
          あらかじめ設定されたパターン文字列内の指定されたフォーマット要素インデックスで、フォーマット要素に使用するフォーマットを設定します。
 void setFormatByArgumentIndex(int argumentIndex, Format newFormat)
          指定された引数インデックスを使用する、あらかじめ設定されたパターン文字列内のフォーマット要素に使用するフォーマットを設定します。
 void setFormats(Format[] newFormats)
          あらかじめ設定されたパターン文字列内のフォーマット要素に使用するフォーマットを設定します。
 void setFormatsByArgumentIndex(Format[] newFormats)
          format メソッドに渡される値または parse メソッドから返された値に使用するフォーマットを設定します。
 void setLocale(Locale locale)
          サブフォーマットを作成または比較する場合に使用するロケールを設定します。
 String toPattern()
          メッセージフォーマットの現在の状態を表すパターンを返します。
 
クラス java.text.Format から継承されたメソッド
format, parseObject
 
クラス java.lang.Object から継承されたメソッド
finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

MessageFormat

public MessageFormat(String pattern)
デフォルトロケールと指定されたパターンのための MessageFormat を構築します。コンストラクタはロケールを設定してからパターンを解析し、含まれているフォーマット要素についてサブフォーマットのリストを作成します。パターンとその解釈はクラスの概要で指定されています。

パラメータ:
pattern - このメッセージフォーマットのためのパターン
例外:
IllegalArgumentException - パターンが無効な場合

MessageFormat

public MessageFormat(String pattern,
                     Locale locale)
指定されたロケールとパターンのための MessageFormat を構築します。コンストラクタはロケールを設定してからパターンを解析し、含まれているフォーマット要素についてサブフォーマットのリストを作成します。パターンとその解釈はクラスの概要で指定されています。

パラメータ:
pattern - このメッセージフォーマットのためのパターン
locale - このメッセージフォーマットのためのロケール
例外:
IllegalArgumentException - パターンが無効な場合
導入されたバージョン:
1.4
メソッドの詳細

setLocale

public void setLocale(Locale locale)
サブフォーマットを作成または比較する場合に使用するロケールを設定します。これは、後に行われる次のようなメソッドへの呼び出しに影響します。 すでに作成されているサブフォーマットは影響を受けません。

パラメータ:
locale - サブフォーマットを作成または比較する場合に使用するロケール

getLocale

public Locale getLocale()
サブフォーマットを作成または比較する場合に使用されるロケールを取得します。

戻り値:
サブフォーマットを作成または比較する場合に使用されるロケール

applyPattern

public void applyPattern(String pattern)
このメッセージフォーマットによって使用されるパターンを設定します。メソッドはパターンを解析し、含まれているフォーマット要素についてサブフォーマットのリストを作成します。パターンとその解釈はクラスの概要で指定されています。

パラメータ:
pattern - このメッセージフォーマットのためのパターン
例外:
IllegalArgumentException - パターンが無効な場合

toPattern

public String toPattern()
メッセージフォーマットの現在の状態を表すパターンを返します。文字列は内部情報から構築されるので、以前に適用されたパターンと等しくなるとは限りません。

戻り値:
メッセージフォーマットの現在の状態を表すパターン

setFormatsByArgumentIndex

public void setFormatsByArgumentIndex(Format[] newFormats)
format メソッドに渡される値または parse メソッドから返された値に使用するフォーマットを設定します。newFormats 内の要素のインデックスは、あらかじめ設定されたパターン文字列で使用される引数インデックスに対応します。したがって、newFormats 内のフォーマットの順序は format メソッドに渡された arguments 配列または parse メソッドによって返された結果の配列内の要素の順序に対応します。  

引数インデックスがパターン文字列内で複数のフォーマット要素に使用される場合、対応する新しいフォーマットがそのすべてのフォーマット要素に使用されます。引数インデックスが文字列内でどのフォーマット要素にも使用されない場合は、対応する新しいフォーマットは無視されます。提供されたフォーマットが必要数に満たない場合、newFormats.length より少ない引数インデックスに対するフォーマットだけが置き換えられます。

パラメータ:
newFormats - 使用する新しいフォーマット
例外:
NullPointerException - newFormats が null の場合
導入されたバージョン:
1.4

setFormats

public void setFormats(Format[] newFormats)
あらかじめ設定されたパターン文字列内のフォーマット要素に使用するフォーマットを設定します。newFormats 内のフォーマットの順序は、パターン文字列内のフォーマット要素の順序に対応します。  

パターン文字列で必要とするよりも多くのフォーマットが提供された場合、余ったフォーマットは無視されます。必要数に満たない場合は、最初の newFormats.length だけが置き換えられます。  

パターン文字列内のフォーマット要素の順序は地域対応化の処理過程で変更されることが多いため、通常は setFormatsByArgumentIndex メソッドを使用するほうが効率的です。 このメソッドは、フォーマットの順序を format メソッドに渡された arguments 配列または parse メソッドによって返された結果の配列内の要素の順序に対応するものと見なします。

パラメータ:
newFormats - 使用する新しいフォーマット
例外:
NullPointerException - newFormats が null の場合

setFormatByArgumentIndex

public void setFormatByArgumentIndex(int argumentIndex,
                                     Format newFormat)
指定された引数インデックスを使用する、あらかじめ設定されたパターン文字列内のフォーマット要素に使用するフォーマットを設定します。引数インデックスはフォーマット要素定義の部分で、format メソッドに渡された arguments 配列または parse メソッドによって返された結果の配列のインデックスを表します。  

引数インデックスがパターン文字列内で複数のフォーマット要素に使用される場合、新しいフォーマットがそのすべてのフォーマット要素に使用されます。引数インデックスが文字列内でどのフォーマット要素にも使用されない場合は、新しいフォーマットは無視されます。

パラメータ:
argumentIndex - 新しいフォーマットに使用するための引数インデックス
newFormat - 使用する新しいフォーマット
導入されたバージョン:
1.4

setFormat

public void setFormat(int formatElementIndex,
                      Format newFormat)
あらかじめ設定されたパターン文字列内の指定されたフォーマット要素インデックスで、フォーマット要素に使用するフォーマットを設定します。フォーマット要素インデックスは、パターン文字列の先頭からカウントした、フォーマット要素のゼロから始まる数字です。  

パターン文字列内のフォーマット要素の順序は、地域対応化の処理過程で変更されることが多いため、通常は setFormatByArgumentIndex メソッドを使用するほうが効率的です。 このメソッドは、フォーマット要素が指定する引数インデックスを基に、フォーマット要素にアクセスします。

パラメータ:
formatElementIndex - パターン内のフォーマット要素のインデックス
newFormat - 指定されたフォーマット要素に使うフォーマット
例外:
ArrayIndexOutOfBoundsException - formatElementIndex が、 パターン文字列内のフォーマット要素の数以上の場合

getFormatsByArgumentIndex

public Format[] getFormatsByArgumentIndex()
format メソッドに渡される値または parse メソッドから返された値に使用されるフォーマットを取得します。返された配列内の要素のインデックスは、あらかじめ設定されたパターン文字列で使用される引数インデックスに対応します。したがって、返された配列内のフォーマットの順序は、format メソッドに渡された arguments 配列または parse メソッドによって返された結果の配列内の要素の順序に対応します。  

引数インデックスがパターン文字列内で複数のフォーマット要素に使用される場合、その最後のフォーマット要素で使用されるフォーマットが配列に返されます。引数インデックスが文字列内でどのフォーマット要素にも使用されない場合は、null が配列に返されます。

戻り値:
パターン内の引数に使用されるフォーマット
導入されたバージョン:
1.4

getFormats

public Format[] getFormats()
あらかじめ設定されたパターン文字列内のフォーマット要素に使用されるフォーマットを取得します。返される配列内のフォーマットの順序は、パターン文字列内のフォーマット要素の順序に対応します。  

パターン文字列内のフォーマット要素の順序は地域対応化の処理過程で変更されることが多いため、通常は getFormatsByArgumentIndex メソッドを使用するほうが効率的です。 このメソッドは、フォーマットの順序を format メソッドに渡された arguments 配列または parse メソッドによって返された結果の配列内の要素の順序に対応するものと見なします。

戻り値:
パターン内のフォーマット要素に使用されるフォーマット

format

public final StringBuffer format(Object[] arguments,
                                 StringBuffer result,
                                 FieldPosition pos)
オブジェクトの配列をフォーマットし、提供された StringBuffer に、フォーマット要素をフォーマットされたオブジェクトによって置き換えて MessageFormat のパターンを追加します。  

個々のフォーマット要素に置換されたテキストは、次の表の最初に一致する行で示されるように、フォーマット要素の現在のサブフォーマットとフォーマット要素の引数インデックスにある arguments 要素から得られます。引数は、argumentsnullであるか、または要素の数が argumentIndex+1 個より少ない場合、使用不可です。  

サブフォーマット 引数 フォーマットされたテキスト
任意 使用不可 "{" + argumentIndex + "}"
任意 null "null"
instanceof ChoiceFormat 任意 subformat.format(argument).indexOf('{') >= 0 ?
(new MessageFormat(subformat.format(argument), getLocale())).format(argument) :subformat.format(argument)
!= null 任意 subformat.format(argument)
null instanceof Number NumberFormat.getInstance(getLocale()).format(argument)
null instanceof Date DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, getLocale()).format(argument)
null instanceof String argument
null 任意 argument.toString()

pos が null でなく、かつ Field.ARGUMENT を参照している場合、最初のフォーマットされた文字列の位置が返されます。

パラメータ:
arguments - フォーマットするかまたは置き換えるオブジェクトからなる配列
result - テキストが追加される位置
pos - 入力では、必要であれば位置合わせフィールド。 出力では、その位置合わせフィールドのオフセット
例外:
IllegalArgumentException - arguments 配列内の引数が、 それを使用するフォーマット要素によって 予測された型でない場合

format

public static String format(String pattern,
                            Object... arguments)
指定されたパターンを使って MessageFormat を作成し、それを使用して指定された引数をフォーマットします。これは以下の記述と同等です。
(new MessageFormat(pattern)).format(arguments, new StringBuffer(), null).toString()

例外:
IllegalArgumentException - パターンが無効な場合、 または arguments 配列内の引数が、 それを使用するフォーマット要素によって予測された型でない 場合

format

public final StringBuffer format(Object arguments,
                                 StringBuffer result,
                                 FieldPosition pos)
オブジェクトの配列をフォーマットし、提供された StringBuffer に、フォーマット要素をフォーマットされたオブジェクトによって置き換えて MessageFormat のパターンを追加します。これは以下の記述と同等です。
format((Object[]) arguments, result, pos)

定義:
クラス Format 内の format
パラメータ:
arguments - フォーマットするかまたは置き換えるオブジェクトからなる配列
result - テキストが追加される位置
pos - 入力では、必要であれば位置合わせフィールド。 出力では、その位置合わせフィールドのオフセット
戻り値:
toAppendTo として渡される文字列バッファー。 フォーマットされたテキストが追加される
例外:
IllegalArgumentException - arguments 配列内の引数が、 それを使用するフォーマット要素によって 予測された型でない場合

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object arguments)
オブジェクトの配列をフォーマットし、それを MessageFormat のパターンに挿入して、AttributedCharacterIterator を生成します。返された AttributedCharacterIterator を使用すると、結果の String を構築できるとともに、結果の String についての情報を判定できます。  

返された AttributedCharacterIterator のテキストは、以下の記述によって返されるテキストと同一です。

format(arguments, new StringBuffer(), null).toString()

さらに、AttributedCharacterIterator は、少なくとも arguments 配列内の引数からテキストが生成された位置を示す属性を含みます。これらの属性のキーは MessageFormat.Field 型です。 属性の値は、テキストが生成された引数の arguments 配列内のインデックスを示す Integer オブジェクトです。  

MessageFormat が使用する基本の Format インスタンスからの属性/値も、結果の AttributedCharacterIterator に配置されます。これにより、結果の String 内の引数の位置がわかるだけでなく、その引数がどのフィールドに含まれているかもわかります。

オーバーライド:
クラス Format 内の formatToCharacterIterator
パラメータ:
arguments - フォーマットするかまたは置き換えるオブジェクトからなる配列
戻り値:
フォーマットされた値を説明する AttributedCharacterIterator
例外:
NullPointerException - argumentsnull の場合
IllegalArgumentException - arguments 配列内の引数が、 それを使用するフォーマット要素によって 予測された型でない場合
導入されたバージョン:
1.4

parse

public Object[] parse(String source,
                      ParsePosition pos)
文字列を解析します。

注意:解析はさまざまな原因のために、うまく動作しないことがあります。次に例を示します。

解析が失敗したときは、ParsePosition.getErrorIndex() を使用して、文字列のどこで解析が失敗したかを調べます。返されるエラーインデックスは、文字列の比較対象であるサブパターンの開始オフセットです。たとえば、解析文字列「AAA {0} BBB」がパターン「AAD {0} BBB」と比較されている場合、エラーインデックスは 0 です。 エラーが発生すると、このメソッドへの呼び出しが null を返します。ソースが null の場合、空の配列を返します。


parse

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

メッセージの解析についての詳細は、parse(String, ParsePosition) メソッドを参照してください。

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

parseObject

public Object parseObject(String source,
                          ParsePosition pos)
文字列からテキストを解析してオブジェクト配列を生成します。  

メソッドは pos によって指定されたインデックスを開始位置としてテキストの解析を試みます。解析が完了すると、pos のインデックスは、使用された最後の文字 (解析では、文字列の最後までのすべての文字が使用されるとは限らない) のあとのインデックスに更新され、解析されたオブジェクト配列が返されます。更新された pos は、このメソッドの次の呼び出しの開始点を示すのに使用できます。エラーが発生した場合は、pos のインデックスは変更されず、エラーが発生した文字のインデックスに pos のエラーインデックスが設定され、null が返されます。  

メッセージの解析についての詳細は、parse(String, ParsePosition) メソッドを参照してください。

定義:
クラス Format 内の parseObject
パラメータ:
source - 部分的に解析される String
pos - 上記のインデックスおよびエラーインデックス情報を持つ ParsePosition オブジェクト
戻り値:
文字列から解析される Object 配列エラーの場合は null を返す
例外:
NullPointerException - pos が null の場合

clone

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

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

equals

public boolean equals(Object obj)
2 つのメッセージフォーマットオブジェクトの間の等号比較です。

オーバーライド:
クラス Object 内の equals
パラメータ:
obj - 比較対象の参照オブジェクト
戻り値:
obj 引数に指定されたオブジェクトとこのオブジェクトが等しい場合は true、そうでない場合は false
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
メッセージフォーマットオブジェクトのハッシュコードを生成します。

オーバーライド:
クラス Object 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

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 も参照してください。