【发布时间】:2017-12-01 09:45:07
【问题描述】:
大家好!
我在替换由特殊字符组成的字符串时遇到了困难。
所以我有以下字符串,例如:
亲爱的*|客户姓名|*,
感谢您的订单*|order_id|*。
请期待交货 *|delivery_date|*
我想做的是用值替换那些动态变量。
我已经完成了这段代码的 sn-p,但它没有正确替换它们:
Map<String, String> structMap = getContectMap();
for (String key : structMap.keySet()) {
if (bodyText.contains(key)) {
bodyText.replaceAll(getVariableKey(key), structMap.get(key));
}
}
private String getVariableKey(Object key) {
return "\\*|" + key + "|\\*";
}
这是我得到的输出:
尊敬的用户|用户|用户,
感谢您订购 1236|1236|1236。
预计交货时间为 5.12.2017|5.12.2017|5.12.2017
任何想法我做错了什么?
*编辑* 发现了一个问题。我也应该转义管道字符(|),现在可以使用。
【问题讨论】:
-
|是一个需要转义的元字符。投票结束是一个错字。
标签: java regex string replace replaceall