標準のフォーマッタに似たスマートなJava文字列フォーマッタを探しています。
StringBuffer buffer = new StringBuffer();
Formatter formatter = new Formatter(buffer);
formatter.format("hello %1$s, %2$s and %3$s", "me", "myself", "I");
問題は、フォーマットを間違えた場合(たとえば、を忘れた場合$s
)、例外がスローされることです。エラーメッセージをフォーマットするときに私が本当に望んでいることではありません(アプリケーションの通常のパスになく、テストされていない可能性があるため)。
もちろん、自分のクラスを定義することもできます。たとえば、のような文字列を受け入れ、 ( -> )"hello $1, $2 and $3
で置換して、すべてのパラメーターに対してを呼び出すことができますが、より良いソリューションがすでに開発されていると確信しています。$1
%1$s
toString()
どこか、どこかの瓶に...
有用なポインタをありがとう。
編集
私は次のようなものを探しています:
String out = MySpecialFormatter.format("hello $1, $2 and $3", "me", "myself", "I");
フォーマットにエラーがある場合(タイプミスが存在する場合)、バインド変数を入力するか、元のフォーマット文字列を返すように最善を尽くします。