Один из возможных способов - добавить char
и это замена к 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
Вам необходимо сделать замену отдельно. – AJMansfield