Я ищу умный формататор Java String, похожий на стандартный форматтер:
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()
для всех параметров, но я уверен лучшее решение уже разработано.
Где-то, в каком-то сосуде ...
Спасибо за любой полезный указатель.
EDIT
Я ищу что-то вроде следующего:
String out = MySpecialFormatter.format("hello $1, $2 and $3", "me", "myself", "I");
если у вас есть ошибка в вашем формате (ну, есть опечатки), он изо всех сил пытается заполнить переменные связывания или вернуть исходную строку формата.