Ich muss wiederholte Wörter auf einer Zeichenkette finden und dann zählen, wie oft sie wiederholt wurden. Also, im Grunde, wenn die Eingabe-Zeichenfolge ist dies:
%Vor%Ich muss eine neue String-Liste ohne Wiederholungen erstellen und irgendwo anders die Anzahl der Wiederholungen für jedes Wort speichern, zB:
Neue Zeichenfolge: "Haus, Hund"
Neues Int-Array: [3, 4]
Gibt es eine Möglichkeit, dies einfach mit Java zu tun? Ich habe es geschafft, die Zeichenfolge mit s.split () zu trennen, aber wie zähle ich dann Wiederholungen und eliminiere sie in der neuen Zeichenfolge? Danke!
Sie haben die harte Arbeit erledigt. Jetzt können Sie einfach ein Map
verwenden, um die Vorkommen zu zählen:
Wenn Sie map.get(word)
verwenden, wird Ihnen oft ein Wort angezeigt. Sie können eine neue Liste erstellen, indem Sie map.keySet()
:
Beachten Sie, dass die Reihenfolge, in der Sie keySet
erhalten, beliebig ist. Wenn Sie möchten, dass die Wörter sortiert werden, wenn sie zum ersten Mal in Ihrem Eingabe-String angezeigt werden, sollten Sie stattdessen ein LinkedHashMap
verwenden.
Wie von anderen erwähnt, verwenden Sie String :: split (), gefolgt von einer Map (hashmap oder linkedhashmap) und führen Sie dann Ihr Ergebnis zusammen. Um der Vollständigkeit halber den Code zu setzen.
%Vor% Neue Zeichenfolge ist Output = House, Dog
Int-Array (oder besser Liste) Values = [3, 4]
(Sie können List :: toArray verwenden), um ein Array zu erhalten.
Sie können die Datenstruktur des Präfixbaums (Trie) verwenden, um Wörter zu speichern und die Anzahl der Wörter im Präfixbaumknoten zu verfolgen.
%Vor%Nachdem Sie alle Wörter eingefügt haben, müssen Sie das Wort und die Zählung drucken, indem Sie Maxheap iterieren.
Ich hoffe, das wird dir helfen
public void countInPara (String str) {
%Vor%Eingabe: Dies ist, was es ist, was es sein kann
Ausgabe:
[dies ist, was, es, ist, das ist, was es sein kann]
{can = 1, was = 2, be = 1, das = 2, ist = 3, es = 2}
[1, 2, 1, 2, 3, 2]
[kann, was, sei, das, ist es]
Bitte verwenden Sie den folgenden Code. Es ist das einfachste nach meiner Analyse. Ich hoffe, Sie werden es mögen:
%Vor%Hier sind die Schritte zum Zählen von wiederholten Wörtern in einem String
Komplettes Programm ist etwas lang, da es String-Inhalte aus der lokalen Datei liest. Sie können den Artikel im folgenden Link einfügen
Für Strings ohne Leerzeichen können wir den unten genannten Code verwenden
%Vor%Übergeben Sie einige Eingaben als "hahaha" oder "ba na na" oder "xxxyyyzzzxxxzzz" geben Sie die gewünschte Ausgabe.
Tags und Links string java repetition