【发布时间】:2016-09-08 07:38:36
【问题描述】:
// 值数组的格式为 { "var1", "val1", "var2", "val2",.. }
public static String replaceMethod(String template, String... values) {
String p = template;
for (int i = 0; i < values.length; i += 2) {
p = p.replace(values[i], values[i+1]);
}
return populatedTemplate;
}
此方法将一组子字符串替换为字符串中的相应值。 例如:- 字符串 => abcd 值的子字符串数组 ["a","b","c","d"] 这意味着将“a”替换为“b”,将“b”替换为“c”。
那么,问题来了。
1.我的上述实现在第一个循环中将 'a' 替换为 'b',然后在第二个循环中,将 'b' 替换为 'c' ,使最终字符串为“cccd”。但我希望输出为“bccd”。串联替换使用先前替换的字符串来进一步工作。 有没有办法以更有效的方式并行替换所有子字符串。
2.如何使用 Map 而不是数组(上述方法的第二个参数)实现上述方法? Map 更好,还是上面的实现很好?
【问题讨论】:
-
对我来说似乎是从数组中删除第一个元素的问题......stackoverflow.com/questions/3663944/…
-
你想说的很不连贯。如果
template = "abcd"和values = {"a","b","c","d"}则输出为bbdd -
@Hackerdarshi if template - "abcd " and values ={"a","b","c","d"} ,然后是 a ->b 和 c->d ,我是为键值对使用数组的备用索引。
标签: java string dictionary replace str-replace