Habedere Community,
ich möchte 2 Strings darauf überprüfen, ob es ein Anagramm ist oder nicht.
Allerdings traten hier ein paar Probleme auf. In meinem Beispiel sollte die Ausgabe in meinen Augen "true" sein. Ist sie aber nicht
Ich hab den Code von mir zum leichteren Verständnis (für Anfänger) ein bisschen kommentiert, wem also eine falsche Kommentierung auffällt, darf sie gerne in den Kommentaren bemängeln.
Hier der Code:
Ich habe bereits die SuFu sowie Google benutzt und auch einiges gefunden. Da es ja einen Unterschied macht ob man den Inhalt oder den Typ vergleicht. (equals / ==)
Trotzallem komm ich nicht auf die Lösung.
Mein Gedanke war, dass ich jeweils den Index der verschiedenen Chars vergleiche.
Also so in der Art, allerdings meckert hier der Compiler.
Momentan fällt mir leider kein anderer Lösungsansatz ein. Ich hoffe wenigstens mein Grundgedanke ist richtig.
Vielen Dank.
Gruß GEEK
ich möchte 2 Strings darauf überprüfen, ob es ein Anagramm ist oder nicht.
Allerdings traten hier ein paar Probleme auf. In meinem Beispiel sollte die Ausgabe in meinen Augen "true" sein. Ist sie aber nicht
Ich hab den Code von mir zum leichteren Verständnis (für Anfänger) ein bisschen kommentiert, wem also eine falsche Kommentierung auffällt, darf sie gerne in den Kommentaren bemängeln.
Hier der Code:
Java:
public class Anagram {
public static void main(String[]args){
String wortEins = new String("Feiern"); // Strings werden deklariert und initialisiert.
String wortZwei = new String("Reifen");
char [] wortEinsChar = wortEins.toLowerCase().toCharArray(); // Char Array werden deklariert
char [] wortZweiChar = wortZwei.toLowerCase().toCharArray(); Strings werden den Arrays in Kleinbuchstaben zugewiesen
boolean richtig = false;
for (int eins = 0; eins<wortEinsChar.length-1; eins++){ // erster Buchstabe vom Array "wortEinsChar" wird ausgewählt
for (int zwei = 0; zwei<wortZweiChar.length-1; zwei++){ // und geprüft ob er im zweiten Char Array "wortZweiChar" vorhanden ist
if(wortZweiChar.equals(wortEinsChar[eins])){
richtig = true; // Wenn vorhanden, dann richtig = true, ansonsten falsch
} else {
richtig = false;
}
}
}
System.out.println("Ist es ein Anagramm? Die Antwort lautet: " + richtig); // Ausgabe true/false
}
}
Ich habe bereits die SuFu sowie Google benutzt und auch einiges gefunden. Da es ja einen Unterschied macht ob man den Inhalt oder den Typ vergleicht. (equals / ==)
Trotzallem komm ich nicht auf die Lösung.
Mein Gedanke war, dass ich jeweils den Index der verschiedenen Chars vergleiche.
Also so in der Art, allerdings meckert hier der Compiler.
Java:
for (int eins = 0; eins<wortEinsChar.length-1; eins++){ // erster Buchstabe vom Array "wortEinsChar" wird ausgewählt
for (int zwei = 0; zwei<wortZweiChar.length-1; zwei++){ // und geprüft ob er im zweiten Char Array "wortZweiChar" vorhanden ist
if(wortZweiChar[zwei].equals(wortZweiChar[eins])){
richtig = true; // Wenn vorhanden, dann richtig = true, ansonsten falsch
} else {
richtig = false;
}
}
Momentan fällt mir leider kein anderer Lösungsansatz ein. Ich hoffe wenigstens mein Grundgedanke ist richtig.
Vielen Dank.
Gruß GEEK