Guten Tag!
Ich habe mich zu Übungszwecken an einem Programm versucht, das feststellen soll, ob die beiden Übergebenen Strings ein Anagramm sind, also ob sie aus den gleichen Buchstaben bestehen.
Die Lösung aus dem Buch kann ich nicht nachvollziehen, ich wüsste gerne, wo in meiner Lösung der denkfehler liegt. Meine Idee war es, mit 2 verschachtelten for-Schleifen zu arbeiten, sodass fuer den ersten Buchstaben des ersten Strings alle Buchstaben des 2. Strings durchgetestet werden, aber irgendwie funktioniert es nicht, obwohl es doch ganz simpel sein muss. *Brett vorm Kopf*, HEUL!!!
Hier der Code:
Aufgerufen wirds in meiner main so:
System.out.println(istAnagramm("all" , "lla"));
ergebnis sollte also "true" sein, es funktioniert aber nicht, kann mir jemand auf die Sprünge helfen?
Ich habe mich zu Übungszwecken an einem Programm versucht, das feststellen soll, ob die beiden Übergebenen Strings ein Anagramm sind, also ob sie aus den gleichen Buchstaben bestehen.
Die Lösung aus dem Buch kann ich nicht nachvollziehen, ich wüsste gerne, wo in meiner Lösung der denkfehler liegt. Meine Idee war es, mit 2 verschachtelten for-Schleifen zu arbeiten, sodass fuer den ersten Buchstaben des ersten Strings alle Buchstaben des 2. Strings durchgetestet werden, aber irgendwie funktioniert es nicht, obwohl es doch ganz simpel sein muss. *Brett vorm Kopf*, HEUL!!!
Hier der Code:
Java:
public static boolean istAnagramm(String s1, String s2) {
boolean ergebnis = true;
if (s1.length() != s2.length()) {
ergebnis = false;
return ergebnis;
} // Ende if
else {
for(int i=0 ; i < s1.length(); i++) {
for(int j=0; j < s1.length(); j++ ) {
if (s1.charAt(i) == s2.charAt(j)) {
ergebnis = true;
} // Ende if
else ergebnis = false;
} // Ende innere for-Schleife
} // Ende auessere for-Schleife
} // Ende else
return ergebnis;
} // ende istAnagramm()
Aufgerufen wirds in meiner main so:
System.out.println(istAnagramm("all" , "lla"));
ergebnis sollte also "true" sein, es funktioniert aber nicht, kann mir jemand auf die Sprünge helfen?