我有一个如下字符串:
Filed Id is invalid, value = {} and valid ranges = '{},{},{}'
我想在运行时用自定义值替换{}
。
我在SLF4J
中看到了这种模式,真正的问题是:是否有第三方实用程序支持此要求而不是使用String.replace
?
答案 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})等等。话虽如此,你必须明确地命名按摩变量才能使用它。