特殊文字で構成される文字列を置き換えるのが難しいです。
だから私は、例えば、以下の文字列を持っている:
各位* | CUSTOMER_NAME | ORDER_ID | | * *、
は*ご注文をお願い致します。 DELIVERY_DATE | | *私が望む何
が値を持つこれらの動的変数を交換することであるためにする
は、配信*ご期待ください。
私はこのコードのスニペットをやったが、それは正しくそれらを置き換えるものではありません:
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 + "|\\*";
}
は、これは私が取得ouputを次のとおりです。
親愛なるユーザー|ユーザー|ユーザー、
ご注文ありがとうございます1236 | 1236 | 1236
配信2017年5月12日を期待してください| 2017年5月12日| 2017年5月12日
私が間違ってやっている任意のアイデア?
* EDIT * 問題が見つかりました。パイプキャラクター(|)も逃げなければなりません。
'|'ですエスケープする必要のあるメタキャラクター。タイプミスとしてクローズする投票。 – dasblinkenlight