用符号格式化String

时间:2015-06-06 06:20:54

标签: java slf4j apache-commons

我有一个如下字符串: Filed Id is invalid, value = {} and valid ranges = '{},{},{}' 我想在运行时用自定义值替换{}。 我在SLF4J中看到了这种模式,真正的问题是:是否有第三方实用程序支持此要求而不是使用String.replace

1 个答案:

答案 0 :(得分:2)

正如 JB Nizet 所建议的,java.text.MessageFormat可以做到这一点,以及String.format()

SLF4J使用org.slf4j.helpers.MessageFormatter所以我猜你也可以使用它。

如果您需要一些高级格式,我个人觉得org.apache.commons.lang3.text.StrSubstitutor非常方便和强大。例如,您可以将命名值的Map(键值)作为参数传递,或者实现您自己的查找(我这样做是为了确保每个占位符都接收一个值)。您还可以指定替换变量的格式({varible},__ variable __,#variable#或%{variable})等等。话虽如此,你必须明确地命名按摩变量才能使用它。