首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java中的字符串替换,类似于速度模板

java中的字符串替换,类似于速度模板
EN

Stack Overflow用户
提问于 2010-09-07 10:48:46
回答 7查看 134.2K关注 0票数 116

在Java语言中有没有String替换机制,我可以用文本传递对象,当字符串出现时,它就会替换字符串。

例如,文本为:

代码语言:javascript
复制
Hello ${user.name},
    Welcome to ${site.name}. 

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

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2010-09-07 13:17:14

使用Apache Commons文本中的StringSubstitutor

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

它会帮你做到这一点(还有它的开源……)

代码语言:javascript
复制
 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);
票数 165
EN

Stack Overflow用户

发布于 2010-09-07 11:04:18

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

代码语言:javascript
复制
Object[] params = new Object[]{"hello", "!"};
String msg = MessageFormat.format("{0} world {1}", params);
票数 141
EN

Stack Overflow用户

发布于 2010-09-07 14:04:07

有几种表达式语言实现可以为您完成此任务,这可能比使用您自己的实现更可取,例如,请参阅JUELMVEL

我喜欢并且已经在至少一个项目中成功地使用了MVEL。

另请参阅JSTL/JSP EL (Expression Language) in a non JSP (standalone) context后的Stackflow

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3655424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档