Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String

Diskutiere Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String im Java Basics - Anfänger-Themen Bereich.
Z

zDieTaschenlampe

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
 
T

temi

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.
 
Z

zDieTaschenlampe

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
 
MoxxiManagarm

MoxxiManagarm

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
 
Zuletzt bearbeitet:
T

temi

Du könntest evtl. anstatt des Arrays mittels charAt() auf die einzelnen Zeichen im String zugreifen. Die liefert allerdings auch ein char zurück.
 
MoxxiManagarm

MoxxiManagarm

Ist eigentlich in deiner Aufgabenstellung was zur Case-Sensitivität erwähnt? Dein Code ist aktuell Case-Sensitiv.
 
Kirby_Sike

Kirby_Sike

Naja man könnte auch mit String.contains(otherString); arbeiten :)
 
Z

zDieTaschenlampe

Also meine Lösung sollte passen und kp was case-Sensivität ist xD
 
MoxxiManagarm

MoxxiManagarm

Case insensitivität liegt vor wenn eine Funktion 2 Strings "a" "A" gleich behandelt, d.h. es ist egal ob die Buchstaben im string klein oder groß sind
 
L

LMessi

d.h. es ist egal ob die Buchstaben im string klein oder groß sind
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);
	}
 
Thema: 

Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben