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 番目の「言語に依存しない方法で連結メッセージを生成する」に使用します。