java - 智能 Java 格式化程序

标签 java formatter

我正在寻找一个类似于标准格式化程序的智能 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/

相关文章:

java - 如何使 Eclipse 格式化程序将 while 语句保留在同一行?

java - 我想将 "08:30:00"转换为 P00DT08H30M。在java中转换为所需输出的最佳方法是什么?

gridview - Yii2 格式化程序 - 创建自定义格式

java - 如何在JPanel中使用JTabbedPane?

java - JavaFX TextArea 中的 Tab 键导航

java - 我的 JFrame 和 JDialog 登录系统的错误行为

java - Vaadin 图表工具提示动态格式化程序

java - 条件变量和锁的使用

java - driver.findby Xpath 中的标记存在语法错误

python - 如何在 Spyder 中使用代码格式化程序 Black?