Java 中的字符串替换,类似于速度模板
2022-08-31 08:23:21
Java中是否有任何替换机制,我可以在其中使用文本传递对象,并在字符串发生时替换字符串。
例如,文本为:String
Hello ${user.name},
Welcome to ${site.name}.
我拥有的对象是 和 。我想将内部给出的字符串替换为对象中的等效值。这与我们在速度模板中替换对象相同。"user"
"site"
${}
Java中是否有任何替换机制,我可以在其中使用文本传递对象,并在字符串发生时替换字符串。
例如,文本为:String
Hello ${user.name},
Welcome to ${site.name}.
我拥有的对象是 和 。我想将内部给出的字符串替换为对象中的等效值。这与我们在速度模板中替换对象相同。"user"
"site"
${}
从Apache Commons Text使用。StringSubstitutor
https://commons.apache.org/proper/commons-text/
它将为您做到这一点(及其开源...)
Map<String, String> valuesMap = new HashMap<String, String>();
valuesMap.put("animal", "quick brown fox");
valuesMap.put("target", "lazy dog");
String templateString = "The ${animal} jumped over the ${target}.";
StringSubstitutor sub = new StringSubstitutor(valuesMap);
String resolvedString = sub.replace(templateString);
看看 java.text.MessageFormat
类,MessageFormat 获取一组对象,设置它们的格式,然后将格式化的字符串插入到模式的相应位置。
Object[] params = new Object[]{"hello", "!"};
String msg = MessageFormat.format("{0} world {1}", params);