通过符号格式化字符串

format a String by a notation

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

根据JB Nizet的建议,java.text.MessageFormat可以做到,String.format()

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

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