我正在寻找一个类似于标准格式化程序的智能 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()
,但我确信已经开发出了更好的解决方案。
在某个地方,在某个 jar 里......
感谢您提供任何有用的指针。
编辑
我正在寻找类似以下内容的东西:
String out = MySpecialFormatter.format("hello $1, $2 and $3", "me", "myself", "I");
如果您的格式有错误(好吧,存在拼写错误),它会尽力填充绑定(bind)变量,或返回原始格式字符串。
最佳答案
有时答案就在那里......
import static java.text.MessageFormat.format;
String out = format("hello {0}, {1} and {2}", "me", "myself", "2", "3");
是的,Anon ,显然Sun认为所有的程序员都那么懒。
关于java - 智能 Java 格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2150029/