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.
Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String
Hallo ,
wie ihr dem Titel entnehmen könnt geht es um eine Java Methode, die prüfen soll, ob 2 Wörter Anagramme sind und ja ich weiß, dass es dazu 10000 Beiträge gibt. Aber die Methode an sich ist ja nicht schwer, also ich habe es selber auch wie folgt hinbekommen :
Code:
public static boolean checkAnagram(String word1, String word2) {
if (word1.length() != word2.length()) {
return false;
}
char[] firstWord = word1.toCharArray();
for (char c : firstWord) {
int index = word2.indexOf(c);
if (index != -1) {
word2 = word2.substring(0, index) + word2.substring(index + 1, word2.length());
} else {
return false;
}
}
return word2.isEmpty();
}
ABER dann hab ich die Aufgabe nochmal gelesen und gesehen, dass man keine JAVA API mit Ausnahme von String benutzen darf und jetzt grübel ich, wie ich das bitte umsetzen soll. Also die erste If Abfrage meiner aktuellen Methode bleibt ja sicherlich, denn wenn 2 Wörter keine gleiche Wortlänge haben, dann kann es es auch kein Anagramm sein, aber der Part mit dem Char Array scheint mir suspekt und wird sicherlich nicht so angenommen als Lösung oder ? Hat jemand spontan eine Einfall wie ich das mithilfe von Strings abändern kann
char ist ja ein primitiver Datentyp und toCharArray() eine Methode von String. Du kannst den String natürlich auch in byte zerlegen, aber byte ist ja ebenfalls ein primitiver Datentyp.
char ist ja ein primitiver Datentyp und toCharArray() eine Methode von String. Du kannst den String natürlich auch in byte zerlegen, aber byte ist ja ebenfalls ein primitiver Datentyp.
Also passt es doch wie ich es habe ? In der Aufgabe heißt es nur " Verwenden Sie selber für diese Aufgabe keine weiteren Klassen direkt aus der Java-API, mit Ausnahme von String. ". Und das verwirrt mich xD
Also für mich sieht deine Lösung auf dem ersten Blick akzeptabel aus. Keine Java Api bedeudet nur du darfst nichts importieren. Das tust du doch nicht.
Edit:
Mögliche Alternativansätze (aber nicht besser):
- beide Strings sortieren und dann vergleichen
- Alle gültigen Zeichen iterieren, sie in beiden Strings zählen und jeweils die Anzahl vergleichen
das ist falsch. Kleine oder große Buchstaben unterscheiden sich in ihrer Schriftgröße. Was du meinst ist sicherlich klein- und großgeschriebene Buchstaben.
Tipp:
Erst die Zeichen des einen Strings umdrehen, dann mit equalsIgnoreCase() vergleichen.
Java:
public static boolean checkAnagram(String word1, String word2) {
return new StringBuilder(word1).reverse().toString().equalsIgnoreCase(word2);
}