MessageFormat自体は言語環境とは何の関係もありません。また、ユーザーがメッセージFormatを提供するモードと、異なる言語環境に適したメッセージを生成するパラメーターを挿入するためのサブフォーマットモードに関連しています。
messageformatモード(メインパーツ):
次のようにコードコードをコピーします。
formatelement:
{ArgumentIndex}:0から始まるエントリ位置のインデックスです。
{argumentIndex、formattype}
{argumentIndex、formattype、formatstyle}
formattype ::フォーマットのために異なるフォーマットサブクラスの使用を指定します。値の範囲は次のとおりです。
番号:フォーマットのためにnumberformatを呼び出します
日付:フォーマットのためにdateformatを呼び出します
時間:フォーマットのためにdateformatを呼び出します
選択:フォーマットのためのChoceseformatを呼び出します
formatstyle :: formattypeで使用されるフォーマットスタイルを設定します。値の範囲は次のとおりです。
短い
中くらい
長さ
fult
整数
通貨
パーセント
subformatpattern(sub -formatモード、#。##のような形状)
この文字列の例として、STRを例にとります。
1。{0}および{1、short}と{2、#。#};
2。{1、number、short}の数値はformattypeに属し、短いformatstyleに属します。
3。{1、number、#。#}#。
formattypeとformatstyleを指定して、日付形式の値、異なる精度の数、パーセンテージタイプなどを生成します。
例:
1.ArgumentIndexは非陰性整数である必要があります。その数は10から9に限定されません。
次のようにコードコードをコピーします。
string msg = "{0} {1} {2} {3} {4} {5} {6} {7} {8}" ";
object [] array = new object [] {"a"、 "b"、 "c"、 "d"、 "e"、 "f"、 "g"、 "i"、};
string value = messageformat.format(msg、array);
System.out.println(value);
2。フォーマットされた文字列の場合、2つの単一の引用符は単一の引用番号を示し、単一の単一の引用番号は省略されます。
次のようにコードコードをコピーします。
string value = messageformat.format( "oh、{0}は 'a' pig"、 "zhangsan");
system.out.println(value); //出力:Zhangsanは豚です
次のような文字Aに単一の引用を追加します。
次のようにコードコードをコピーします。
string value = messageformat.format( "oh、{0}は 'a' pig"、 "zhangsan");
System.out.println(value);
転送するデュアル引用符を表示する必要がある場合、例:string msg = "oh、{0} is /" a /"pig";
3.単一の引用番号により、後の位置の位置が失敗し、直接出力配置記号が生じます。
次のようにコードコードをコピーします。
messageformat.format( "{0} {1}"、1、2);
messageformat.format( "'{0} {1}"、1、2);
messageformat.format( "'{0}' - {1}"、1、2);
たとえば、二重の引用と2つの単一の引用の使用とは関係ありません。
string value = messageformat.format( "oh、 '' {0} '' is a pick"、 "zhangsan");
System.out.println(value);
別の例では、サブフォームモードを使用して、もう1つの単一の引用番号を使用します。
次のようにコードコードをコピーします。
string value = messageformat.format( "oh、{0、number、#。#}は良いnum"、double.valueof( "3.1415"));
System.out.println(value); //出力:3.1は良い数字です
3.引用符と文字列があるか、引用符文字列がないかどうかにかかわらず、次のような左のフラワーブラケットはサポートされていません。
次のようにコードコードをコピーします。
string value = messageformat.format( "oh、}は良いnum"、double.valueof( "3.1415");
system.out.println(value); //出力:}
左のフラワーブラケットを使用する場合、異常なコピーコードコードが次のように表示されます。
string value = messageformat.format( "oh、{good num"、double.valueof( "3.1415");
System.out.println(value);
したがって
messageformat.format( "'{' {0}}"、 "x-rapido");
興味深い現象もあります。さらに
string value = messageformat.format( "oh、{{good num"、 "d");
system.out.println(value);
次のようにコードコードをコピーします。
string value = messageformat.format( "oh、}}は良いnum"、 "d");
System.out.println(value);
messageformat.formatメソッドについて:
messageformat.formatメソッドが呼び出されるたびに、messageformatのインスタンスが新しく作成されます。 MessageFormatクラスのフォーマットメソッドは次のとおりです。
次のようにコードコードをコピーします。
public static string形式(文字列パターン、オブジェクト...引数)
{{
messageformat temp = new MessageFormat(pattern);
return temp.Format(引数);
}
したがって、同じモードの文字列を複数回フォーマットする場合は、実行フォーマットでmessageformatインスタンスを作成します。
文字列メッセージ= "OH、{0}は豚です";
messageformat messageformat = new messageformat(message);
object [] array = new object [] {"Zhangsan"};
string value = messageformat.format(array);
System.out.println(value);