對於這種情況,您可以使用String.replace(char, char)
。
String src = "text_abc";
String replaced = src.replace('a', 'd')
.replace('b', 'e')
.replace('c', 'f');
如果你堅持使用正則表達式(這是這種情況下,一個愚蠢的想法,這是低效的和不必要的不可維護的),你可以使用一個Map
相應的查找替換:
String src = "text_abc";
// Can move these to class level for reuse.
final HashMap<String, String> map = new HashMap<>();
map.put("a", "d");
map.put("b", "e");
map.put("c", "f");
final Pattern pattern = Pattern.compile("[abc]");
String replaced = src;
Matcher matcher;
while ((matcher = pattern.matcher(replaced)).find())
replaced = matcher.replaceFirst(map.get(matcher.group()));
// System.out.println(replaced);
這是online code demo。
謝謝,但可以做到白衣正則表達式嗎? – carlos 2013-04-05 19:33:51