java—替换字符串中的字母,不留空格

qvtsj1bj  于 2021-06-30  发布在  Java
关注(0)|答案(3)|浏览(329)

我的问题是如何分别改变一个字符串中的许多字母?我的意思是每一个字母都换成另一个例如a到g,b到h,c到x,d到y,g到a例如:
我做了但什么也没发生

String test = "ACDGBBDDGG";
String outputText = test.replaceAll("ABCDG","GHXYA");

System.out.println(outputText);

输出应该是

GXYAHHYYAA
ekqde3dh

ekqde3dh1#

一种可能的方法是添加 char 它取代了 Map 然后在两者之间“Map”就像

Map<Character, Character> map = new HashMap<>();
map.put('A', 'G');
map.put('B', 'H');
map.put('C', 'X');
map.put('D', 'Y');
map.put('G', 'A');

String test = "ACDGBBDDGG";
StringBuilder sb = new StringBuilder();
for (char c : test.toCharArray()) {
    char o = map.containsKey(c) ? map.get(c) : c;
    sb.append(o);
}
System.out.println(sb.toString());

另一种可能性(尽管在运行时方面更为复杂)是在 String 喜欢

String in = "ABCDG";
String out = "GHXYA";
String test = "ACDGBBDDGG";
StringBuilder sb = new StringBuilder();
for (char c : test.toCharArray()) {
    int i = in.indexOf(c);
    char o = (i > -1) ? out.charAt(i) : c;
    sb.append(o);
}
System.out.println(sb.toString());

两个输出(请求的)

GXYAHHYYAA
9q78igpj

9q78igpj2#

如果您使用的是java 8:

String fromChars = "ABCDG";
String toChars = "GHXYA";
String test = "ACDGBBDDGG";

test.chars().forEach(ch->System.out.print(toChars.charAt(fromChars.indexOf(ch))));

您也可以收集结果并将其转换为字符串。

dba5bblo

dba5bblo3#

尝试outputtext=test.replaceall(“a”,“g”).replaceall(“b”,“h”).replaceall(“c”,“x”)等。

相关问题