【发布时间】:2018-09-18 09:54:53
【问题描述】:
我想将字符串的所有“A”替换为“B”,将所有“B”替换为“Z”,这样“ABCAAB”的结果将是“BZCBBZ”。
有没有办法使用replaceAll函数替换下面的代码?
String init = "ABCAAB"
String res = "";
for (char c: init.toCharArray()){
switch (c) {
case 'A':res = res+'B';
case 'B':res = res+'Z';
default :res = res+c;
}
}
【问题讨论】:
-
String res = init.replaceAll("B", "Z").replaceAll("A", "B"); -
更简单:
String res = init.replace("B", "Z").replace("A", "B"); -
棘手!但是有没有可能做一次(如果我有更多的替换要做并且没有顺序可以执行它们)
-
@WiktorStribiżew 我不认为你的重复是正确的,那个问题是关于替换字符串中的单词,这个问题是关于替换字母,其中一个字母的替换也可能是一个字母,如果它不是替换字符将被第三个字符替换。
-
@WiktorStribiżew 今天早上我可能会表现出我的咖啡不足,但我看不出如何在不将 ab 转换为 cc 的情况下解决 a => b, b => c 映射。请注意,OP 说他可以有以下映射 a => b, b => c, c => a 这意味着没有正确的排序替换方式。