Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich soll eine Methode schreiben, die die beiden 2-Wort-Wörter von hinten nach vorne mischt, so dass im Ergebnis die letzten beiden Buchstaben am Ende zurückgegeben werden, dann die letzten beiden Buchstaben, und so weiter. Mit meinem Code erhalte ich auch die richtige Antwort, aber ich möchte wissen, wie ich diesen Code verbessern kann..
Java:
public static String woertermischen(String wort1, String wort2) {
String result = "";
int m, n;
for (int i = 0; i <= ((wort1.length() < wort2.length()) ? wort2.length() : wort1.length()); i++) {
if (i == 0) {
m = wort1.length();
} else {
m = wort1.length() - i + 1;
}
if (i <= wort1.length()) {
result = wort1.substring(wort1.length() - i, m) + result;
}
if (i == 0) {
n = wort2.length();
} else {
n = wort2.length() - i + 1;
}
if (i <= wort2.length()) {
result += wort2.substring(wort2.length() - i, n) + result;
}
}
return result;
So ganz habe ich die Aufgabe nicht verstanden. Mit 'Hallo' und 'Lampe' erhalte ich 'HalloeoploeomlloeoploeoaalloeoploeomlloeoploeoLHalloeoploeomlloeoploeoaalloeoploeomlloeoploeo'. Das passt aber meiner Meinung nicht zu Deiner Beschreibung.
Daher kann ich Dir fürs erste nur diese Kleinigkeit anbieten.
for (int i = 0; i <= ((wort1.length() < wort2.length()) ? wort2.length() : wort1.length()); i++) {
zu for (int i = 0; i <= Math.max(wort1.length(), wort2.length()); i++) {
ach ja Gute Idee
ja ich hab einen kleinen Fehler gemacht..
Java:
for (int i = 0; i <= Math.max(wort1.length(), wort2.length()); i++) {
if (i == 0) {
m = wort1.length();
} else {
m = wort1.length() - i + 1;
}
if (i <= wort1.length()) {
result += wort1.substring(wort1.length() - i, m) ;
}
if (i == 0) {
n = wort2.length();
} else {
n = wort2.length() - i + 1;
}
if (i <= wort2.length()) {
result += wort2.substring(wort2.length() - i, n);
}
}
return result;
}
Wenn Du geschickt eine kleine Methode static String getSubstring(String word, int index) { schreibst, welche entweder einen Buchstaben, oder einen Leerstring ("") zurückgibt, dann kann die Schleife so aussehen
Java:
for (int i = 1; i <= Math.max(wort1.length(), wort2.length()); i++) {
result += getSubstring(wort1, i);
result += getSubstring(wort2, i);
}