【发布时间】:2016-09-10 02:21:47
【问题描述】:
此函数用于将字符串中的某些子字符串替换为相应的值。
// map(string_to_replace, string_to_replace_with)
String template = "ola ala kala pala sala";
StringBuilder populatedTemplate = new StringBuilder();
HashMap<String, String> map = new HashMap<>();
map.put("ola", "patola");
map.put("pala", "papala");
int i=0;
for (String word : template.split("'")) {
populatedTemplate.append( map.getOrDefault(word, word));
populatedTemplate.append(" ");
}
System.out.println(populatedTemplate.toString());
如果要替换的子字符串被“”(空格)包围,则上述函数可以正常工作。
Ex- String => "嘿{how} are $=you" 如果要替换的子字符串是“嘿”或“你”,那么它工作正常。问题是当我想替换“如何”和“你”时。
如何在不增加复杂性的情况下实现这一目标?
【问题讨论】:
-
为什么不根据需要经常
template.replace(string_to_replace, string_to_replace_with)? PS:stackoverflow.com/questions/1324676/… 可能会起作用。 -
@zapl 的问题是替换是依赖的。即让我想将“how”替换为“are”,将“are”替换为“ok”。在第一次迭代字符串之后将是“Hey {are} are $=you”。在第二次迭代“嘿{ok} ok $=you”之后。以及错误的输出。应该是“Hey {are} ok $=you”
标签: java string dictionary hashmap str-replace