【发布时间】:2018-07-10 03:25:32
【问题描述】:
昨天我正在处理定制的信件和备忘录。并且我已经制作了映射关键字,例如:[Dateofbirth]、[Email]、[Employee]、[Salary] 等,将在生成时替换。
示例:亲爱的 [Employee],您当前的薪水是 [Salary]。
预期输出:
输出:亲爱的约翰,你现在的薪水是 12000。
我正在使用replaceAll()方法这里是一个代码。
String str = "dear [Employee], your Current Salary is [Salary].";
Map<String,String> vals = new HashMap<String,String>();
vals.put("[Employee]","John");
vals.put("[Salary]","12000");
for(String key:vals.keySet()){
str=str.replaceAll(key,vals.get(key));
}
System.out.println(str);
但结果是:
dJohn1200012000 [JohnJohnJohnJohnJohnJohnJohnJohn], JohnJohnu12000 Cu1200012000Johnnt 1200012000John1200012000John is [1200012000John1200012000John].
我很困惑并用谷歌搜索并试图纠正它,之后我将replaceAll() 更改为replace()
EX: str=str.replace(key,vals.get(key));
现在它工作正常。问题是为什么全部替换正在做这种行为replaceAll() 的核心概念是什么以及何时使用replace() 何时使用replaceAll()。
谢谢
【问题讨论】:
标签: java replace replaceall