JDK 1.5のMessageFormat.format
との違いは何ですか?String.format
2 に答える
簡単に言えば、主な違いはフォーマット文字列にあります。
MessageFormat.format()
フォーマット文字列は、引数の位置を受け入れます (例:{0}
,{1}
)。例:"This is year {0}!"
ほとんどの場合、引数の型は current に従って認識およびフォーマットされるため、開発者は引数の型について心配する必要はありません
Locale
。String.format()
フォーマット文字列は、引数の型指定子を受け入れます (例:%d
数値、%s
文字列)。例:"This is year %d!"
String.format()
通常、型指定子で指定できる多くのオプションのおかげで、引数の表示方法をより詳細に制御できます。たとえば、フォーマット文字列"%-6.2f"
は、最小で左揃えの浮動小数点数を表示するように指定します。幅 6 文字、小数点以下 2 桁の精度。
詳細については、両方のメソッドの javadoc を参照してください。
String.format はFormatterへの単なるショートカットです。これは「printf スタイル」のフォーマッタです。一方、MessageFormatは、リンクされたドキュメントで説明されているように、別の書式設定規則を使用します。
最初の「レイアウトの正当化と配置、数値、文字列、および日付/時刻データの一般的な形式、およびロケール固有の出力」に使用し、2 番目の「言語に依存しない方法で連結メッセージを生成する」に使用します。