Hallo,
ich habe mal wieder ein Problem mit meinem Projekt
Ich habe schonmal gefragt, wie ich es denn anstelle, dass ein String ("cbda") nach alphabet geordnet wird, und ein zweiter nach dem selben Muster. D.h.:
cbda
1234
abcd
4213
test
1234
4213
ttes
Nun möchte ich das ganze gerne wieder rückgängig machen. D.h.:
Geg.: cbda; ttes
Ges.: test
Ich möchte also "ttes" in "test" umwandeln, indem ich "cbda" nach alphabet ordne, mir die Reihenfolge merke, und dann "ttes" nach umgekehrter Reihenfolge in "test" zusammenbaue.
Hier der erste Code (muss ich vll nur was ändern?) :
Danke schonmal im vorraus für eure Bemühungen:applaus:
ich habe mal wieder ein Problem mit meinem Projekt
Ich habe schonmal gefragt, wie ich es denn anstelle, dass ein String ("cbda") nach alphabet geordnet wird, und ein zweiter nach dem selben Muster. D.h.:
cbda
1234
abcd
4213
test
1234
4213
ttes
Nun möchte ich das ganze gerne wieder rückgängig machen. D.h.:
Geg.: cbda; ttes
Ges.: test
Ich möchte also "ttes" in "test" umwandeln, indem ich "cbda" nach alphabet ordne, mir die Reihenfolge merke, und dann "ttes" nach umgekehrter Reihenfolge in "test" zusammenbaue.
Hier der erste Code (muss ich vll nur was ändern?) :
Java:
static class SortablePair<T extends Comparable<T>> implements
Comparable<SortablePair<T>> {
final T a;
final T b;
public SortablePair(T a, T b) {
this.a = a;
this.b = b;
}
@Override
public int compareTo(SortablePair<T> oth) {
return a.compareTo(oth.a);
}
}
public static SortablePair<String> orderCharactersByFirstString(String a,
String b) {
if (a.length() != b.length()) {
throw new InputMismatchException(
"Strings have to be in same length!");
}
List<SortablePair<Character>> list = new ArrayList<>();
for (int i = 0; i < a.length(); i++) {
list.add(new SortablePair<Character>(a.charAt(i), b.charAt(i)));
}
Collections.sort(list);
StringBuilder outFirst = new StringBuilder("");
StringBuilder outSecond = new StringBuilder("");
for (SortablePair<Character> op : list) {
outFirst.append(op.a);
outSecond.append(op.b);
}
return new SortablePair<String>(outFirst.toString(),
outSecond.toString());
}
Danke schonmal im vorraus für eure Bemühungen:applaus: