- 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内で1組の単一引用符を使用して、単一引用符を除く任意の文字を囲むことができます。 たとえば、パターン文字列
"'{0}'"
は、FormatElementではなく、文字列"{0}"
を表します。 単一引用符自体を表すには、String全体で単一引用符を2つにする(''
)必要があります。 たとえば、パターン文字列"'{''}'"
は、'{'
と'}'
(左右の中括弧が引用符で囲まれたもの) ではなく、'{
(引用の開始と左中括弧)、''
(単一引用符)、}'
(右中括弧と引用の終了)が連続するものとして解釈され、文字列"{}"
ではなく、"{'}"
を表します。SubformatPatternは対応するサブフォーマットで解釈され、サブフォーマットに依存するパターンのルールが適用されます。 たとえば、パターン文字列
"{1,number,$'#',##}"
(下線付きのSubformatPattern)と指定すると、ハッシュ記号(#)が付いた数値フォーマットが生成されます。結果は、"$#31,45"
のようになります。 詳細は、Format
サブクラスのドキュメントを参照してください。一致しない引用符は、指定されたパターンの最後で閉じられるものとして処理されます。 たとえば、パターン文字列
"'{0}"
はパターン"'{0}'"
として処理されます。引用符で囲まれていないパターン内の中括弧のバランスを取る必要があります。 たとえば、
"ab {0} de"
や"ab '}' de"
は有効なパターンですが、"ab {0'}' de"
、"ab } de"
、"''{''"
は無効です。- 警告:
- メッセージ・フォーマット・パターン内での引用符の使用ルールは、あまり明快ではありません。 特に、単一引用符を二重にする必要の有無がローカライザにとっては明らかでないこともあります。 ローカライザにルールについて情報を提供し、リソースにバンドルされるソース・ファイル内のコメントなどによって、どの文字列が
MessageFormat
で処理されるのかを示すようにしてください。 ローカライザは、変換した文字列でオリジナルのバージョンにはない単一引用符を使用しなければならない場合があります。
ArgumentIndex値は、数字
'0'
-'9'
を使用して記述した0以上の整数です。format
メソッドに渡されたarguments
配列またはparse
メソッドによって返された結果の配列のインデックスを表します。FormatTypeおよびFormatStyle値は、フォーマット要素の
Format
インスタンスの生成に使用します。 次の表に、Format
インスタンスへの値のマップについて示します。 表にない組み合わせは使用できません。 SubformatPatternは、使用するFormat
サブクラスに対して有効なパターン文字列である必要があります。使用例
次にいくつかの使用例を示します。 もちろん実際の国際化されたプログラムでは、メッセージ・フォーマット・パターンやその他の静的な文字列はリソース・バンドルから取得されます。 その他のパラメータは実行時に動的に決定されます。
最初の例では、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}.");
注: 上記からわかるように、
MessageFormat
のChoiceFormat
によって生成される文字列の扱いはかなり特殊です。「{」の存在によってサブフォーマットであることを示し、再帰処理を行っています。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")}
Synchronization
メッセージ・フォーマットは同期化されません。 スレッドごとに別のフォーマット・インスタンスを作成することをお薦めします。 複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
- 導入されたバージョン:
- 1.1
- 関連項目:
Locale
,Format
,NumberFormat
,DecimalFormat
,DecimalFormatSymbols
,ChoiceFormat
,DateFormat
,SimpleDateFormat
, 直列化された形式
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static class
MessageFormat.Field
MessageFormat.formatToCharacterIterator
から返されたAttributedCharacterIterator
内の属性キーとして使用する定数を定義します。
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 MessageFormat(String pattern)
デフォルトのFORMAT
ロケールと指定されたパターンのためのMessageFormatを構築します。MessageFormat(String pattern, Locale locale)
指定されたロケールとパターンのためのMessageFormatを構築します。
-
メソッドのサマリー
すべてのメソッド staticメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 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
-
-
-
-
コンストラクタの詳細
-
MessageFormat
public MessageFormat(String pattern)
デフォルトのFORMAT
ロケールと指定されたパターンのためのMessageFormatを構築します。 コンストラクタはロケールを設定してからパターンを解析し、含まれているフォーマット要素についてサブフォーマットのリストを作成します。 パターンとその解釈はクラスの概要で指定されています。- パラメータ:
pattern
- このメッセージ・フォーマットのためのパターン- 例外:
IllegalArgumentException
- パターンが無効な場合NullPointerException
-pattern
がnull
の場合
-
MessageFormat
public MessageFormat(String pattern, Locale locale)
指定されたロケールとパターンのためのMessageFormatを構築します。 コンストラクタはロケールを設定してからパターンを解析し、含まれているフォーマット要素についてサブフォーマットのリストを作成します。 パターンとその解釈はクラスの概要で指定されています。- パラメータ:
pattern
- このメッセージ・フォーマットのためのパターンlocale
- このメッセージ・フォーマットのためのロケール- 例外:
IllegalArgumentException
- パターンが無効な場合NullPointerException
-pattern
がnull
の場合- 導入されたバージョン:
- 1.4
-
-
メソッドの詳細
-
setLocale
public void setLocale(Locale locale)
サブフォーマットを作成または比較する場合に使用するロケールを設定します。 これは、後に行われる次のようなメソッドへの呼出しに影響します。applyPattern
メソッドとtoPattern
メソッド(フォーマット要素がフォーマット型を指定しており、そのためサブフォーマットがapplyPattern
メソッドで作成される場合)format
メソッドとformatToCharacterIterator
メソッド(フォーマット要素がフォーマット型を指定しておらず、そのためサブフォーマットがこれらの書式設定メソッドで作成される場合)。
- パラメータ:
locale
- サブフォーマットを作成または比較する場合に使用するロケール
-
getLocale
public Locale getLocale()
サブフォーマットを作成または比較する場合に使用されるロケールを取得します。- 戻り値:
- サブフォーマットを作成または比較する場合に使用されるロケール
-
applyPattern
public void applyPattern(String pattern)
このメッセージ・フォーマットによって使用されるパターンを設定します。 メソッドはパターンを解析し、含まれているフォーマット要素についてサブフォーマットのリストを作成します。 パターンとその解釈はクラスの概要で指定されています。- パラメータ:
pattern
- このメッセージ・フォーマットのためのパターン- 例外:
IllegalArgumentException
- パターンが無効な場合NullPointerException
-pattern
がnull
の場合
-
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
要素から得られます。 引数は、arguments
がnull
であるか、または要素の数が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
- 入力では、必要であれば位置合わせフィールド。 出力では、その位置合わせフィールドのオフセット。- 戻り値:
result
として渡される文字列バッファー。フォーマットされたテキストが付加される- 例外:
IllegalArgumentException
-arguments
配列内の引数が、それを使用するフォーマット要素によって予測された型でない場合。NullPointerException
-result
がnull
の場合
-
format
public static String format(String pattern, Object... arguments)
指定されたパターンを使ってMessageFormatを作成し、それを使用して指定された引数をフォーマットします。 これは次の記述と同等です。(new
MessageFormat
(pattern)).format
(arguments, new StringBuffer(), null).toString()- パラメータ:
pattern
- パターン文字列arguments
- フォーマットするオブジェクト- 戻り値:
- フォーマットされた文字列
- 例外:
IllegalArgumentException
- パターンが無効な場合、またはarguments
配列内の引数が、それを使用するフォーマット要素によって予測された型でない場合。NullPointerException
-pattern
がnull
の場合
-
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
配列内の引数が、それを使用するフォーマット要素によって予測された型でない場合。NullPointerException
-result
がnull
の場合
-
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内の引数の位置がわかるだけでなく、その引数がどのフィールドに含まれているかもわかります。- オーバーライド:
formatToCharacterIterator
、クラス:Format
- パラメータ:
arguments
- フォーマットするかまたは置き換えるオブジェクトからなる配列。- 戻り値:
- フォーマットされた値を説明するAttributedCharacterIterator。
- 例外:
NullPointerException
-arguments
がnullである場合。IllegalArgumentException
-arguments
配列内の引数が、それを使用するフォーマット要素によって予測された型でない場合。- 導入されたバージョン:
- 1.4
-
parse
public Object[] parse(String source, ParsePosition pos)
文字列を解析します。注意: 解析はさまざまな原因のために、うまく動作しないことがあります。 たとえば、
- 引数の1つがパターンにない。
- 大きな数字が"many"にフォーマットされるようなchoiceフォーマットなどで、引数のフォーマットが情報を失う。
- 繰返しをまだ処理しない(置き換える文字列に{n}個の参照がある場合)。
- 解析の一部があいまいなとき、一致(または正しい一致)が必ずしも見つからない。 たとえば、パターン「{1},{2}」を文字列引数{"a,b", "c"}で使用する場合は、「a,b,c」とフォーマットされる。 その結果が解析されると、{"a", "b,c"}が返される。
- 1つの引数が文字列内で複数回解析されると、あとの解析が優位になる。
- パラメータ:
source
- 解析する文字列pos
- 解析位置- 戻り値:
- 解析されたオブジェクトの配列
- 例外:
NullPointerException
-pos
がnull以外のsource
文字列の場合は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)
メソッドを参照してください。- 定義:
parseObject
、クラス:Format
- パラメータ:
source
- 部分的に解析されるString
。pos
- 上記のインデックスおよびエラー・インデックス情報を持つParsePosition
オブジェクト- 戻り値:
- 文字列から解析される
Object
配列。 エラーの場合はnullを返す。 - 例外:
NullPointerException
-pos
がnullである場合。
-
clone
public Object clone()
このオブジェクトのコピーを作成して、返します。
-
equals
public boolean equals(Object obj)
2つのメッセージ・フォーマット・オブジェクトの間の等号比較です。- オーバーライド:
equals
、クラス:Object
- パラメータ:
obj
- 比較対象の参照オブジェクト。- 戻り値:
- このオブジェクトがobj引数と同じである場合は
true
、それ以外の場合はfalse
。 - 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()
メッセージ・フォーマット・オブジェクトのハッシュ・コードを生成します。- オーバーライド:
hashCode
、クラス:Object
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
-