Hallo,
ich möchte alle Zeichen einer Zeichenfolge um
Das ist mein bisheriger Ansatz:
Und das ist die Ausgabe:
i = 1
txt = [u, t, G, n, e, , T, g, a]
i = 2
txt = [a, e, n, , G, u, g, t, T]
i = 3
txt = [e, n, , T, a, g, G, u, t] ✅
i = 4
txt = [u, t, e, a, g, n, , T, G]
i = 5
txt = [n, T, a, g, , G, u, t, e] ✅
i = 6
txt = [e, n, , T, a, g, G, u, t] ✅
i = 7
txt = [t, e, n, , T, g, a, G, u]
i = 8
txt = [u, t, e, n, , T, a, g, G] ✅
i = 9
txt = [G, u, t, e, n, , T, a, g] ✅
Kann mir vielleicht jemand sagen, was ich falsch mache? Danke. 😊
ich möchte alle Zeichen einer Zeichenfolge um
shift
Schritte in eine Richtung verschieben. Es soll dabei kein zusätzliches Array benutzt werden...Das ist mein bisheriger Ansatz:
Java:
public static char[] shiftImproved(final char[] txt, final int shift) {
for (int i = 1; shift * (i - 1) + shift <= txt.length; i *= 2) {
for (int j = 0; j < shift; j++) {
int i1 = (shift * (i - 1) + j) % txt.length;
int i2 = (shift * (i - 1) + j + shift) % txt.length;
char temp = txt[i1];
txt[i1] = txt[i2];
txt[i2] = temp;
}
}
System.out.println("txt = " + Arrays.toString(txt));
return txt;
}
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
System.out.println("i = " + i);
shiftImproved("Guten Tag".toCharArray(), i);
}
}
Und das ist die Ausgabe:
i = 1
txt = [u, t, G, n, e, , T, g, a]
i = 2
txt = [a, e, n, , G, u, g, t, T]
i = 3
txt = [e, n, , T, a, g, G, u, t] ✅
i = 4
txt = [u, t, e, a, g, n, , T, G]
i = 5
txt = [n, T, a, g, , G, u, t, e] ✅
i = 6
txt = [e, n, , T, a, g, G, u, t] ✅
i = 7
txt = [t, e, n, , T, g, a, G, u]
i = 8
txt = [u, t, e, n, , T, a, g, G] ✅
i = 9
txt = [G, u, t, e, n, , T, a, g] ✅
Kann mir vielleicht jemand sagen, was ich falsch mache? Danke. 😊