java中的字符串替换,类似于velocity 模板

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (24)

String在Java中有没有替换机制,我可以用文本传递对象,并且在字符串发生时替换它。 例如,文本是:

Hello ${user.name},
    Welcome to ${site.name}. 

我拥有的物品是"user""site"。我想${}用对象中的等价值替换内部给出的字符串。这与我们替换速度模板中的对象相同。

提问于
用户回答回答于

长时间使用apache commons。

https://commons.apache.org/proper/commons-lang/

它会为你做(和它的开源...)

 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}.";
 StrSubstitutor sub = new StrSubstitutor(valuesMap);
 String resolvedString = sub.replace(templateString);
用户回答回答于

看看这个java.text.MessageFormat类,MessageFormat接收一组对象,对它们进行格式化,然后将格式化的字符串插入适当位置的模式中。

Object[] params = new Object[]{"hello", "!"};
String msg = MessageFormat.format("{0} world {1}", params);

扫码关注云+社区