Anzahl der Wörter in einer Datei zählen

7

Ich habe Probleme, die Anzahl der Wörter in einer Datei zu zählen. Der Ansatz, den ich nehme, ist, wenn ich ein Leerzeichen oder eine neue Zeile sehe, dann weiß ich, ein Wort zu zählen.

Das Problem ist, dass wenn ich mehrere Zeilen zwischen Absätzen habe, habe ich sie auch als Wörter gezählt. Wenn Sie sich die readFile () -Methode ansehen, können Sie sehen, was ich gerade mache.

Könnten Sie mir helfen und mich in die richtige Richtung führen, wie ich das beheben kann?

Beispiel für eine Eingabedatei (einschließlich einer leeren Zeile):

%Vor%     
Tony 04.11.2010, 05:29
quelle

12 Antworten

10

Ich würde Ihren Ansatz ein wenig ändern. Zuerst würde ich ein BufferedReader verwenden, um die Datei Zeile für Zeile mit readLine() zu lesen. Teilen Sie dann jede Zeile mit whitespace mit String.split("\s") und verwenden Sie die Größe des resultierenden Arrays, um zu sehen, wie viele Wörter sich in dieser Zeile befinden. Um die Anzahl der Zeichen zu erhalten, können Sie entweder die Größe jeder Zeile oder jedes geteilten Wortes betrachten (abhängig davon, ob Sie Whitespace als Zeichen zählen möchten).

    
Brian Clements 04.11.2010, 05:43
quelle
11

Sie können einen Scanner mit einem FileInputStream anstelle von BufferedReader mit einem FileReader verwenden. Zum Beispiel: -

%Vor%     
tanyehzheng 04.11.2010 05:46
quelle
3

Halten Sie einfach ein boolesches Flag herum, das Sie darüber informiert, ob das vorherige Zeichen Whitespace war oder nicht (Pseudocode folgt):

%Vor%     
levik 04.11.2010 05:40
quelle
3
%Vor%     
narendra kumar botta 20.04.2012 17:52
quelle
3

Das ist nur ein Gedanke. Es gibt einen sehr einfachen Weg, es zu tun. Wenn Sie nur die Anzahl der Wörter und nicht die tatsächlichen Wörter benötigen, dann verwenden Sie einfach Apache WordUtils

%Vor%     
javasqlsecurity dot com 04.11.2010 07:00
quelle
2

Hack-Lösung

Sie können die Textdatei in eine Zeichenfolge var lesen. Teilen Sie dann die Zeichenfolge in ein Array unter Verwendung eines einzelnen Leerzeichen als Trennzeichen StringVar.Split ("").

Die Array-Anzahl entspricht der Anzahl der Wörter in der Datei. Natürlich würde Ihnen das nicht die Zeilennummern anzeigen.

    
Gthompson83 04.11.2010 05:45
quelle
2

Ich denke, ein korrekter Ansatz wäre mit Regex:

%Vor%

Ich hoffe, es hilft. Die Bedeutung "\ s +" ist in Muster javadoc

    
Oso 08.11.2010 18:31
quelle
0

3 Schritte: Verbrauchen Sie alle Leerzeichen, prüfen Sie, ob es sich um eine Zeile handelt, konsumieren Sie alle Nicht-Whitespaces.3

%Vor%     
fabrizioM 04.11.2010 05:55
quelle
0

Datei-Word-Anzahl

Wenn Sie zwischen Wörtern mit einigen Symbolen stehen, können Sie die Anzahl der Wörter teilen und zählen.

%Vor%     
Yash 09.07.2015 09:54
quelle
0

Sehen Sie sich meine Lösung hier an, es sollte funktionieren. Die Idee ist, alle unerwünschten Symbole aus den Wörtern zu entfernen, diese Wörter dann zu trennen und sie in einer anderen Variablen zu speichern, ich benutzte ArrayList. Indem Sie die Variable "excludedSymbols" anpassen, können Sie weitere Symbole hinzufügen, die Sie von den Wörtern ausschließen möchten.

%Vor%     
F.A. Botic 28.10.2017 16:37
quelle
0

Dies kann sehr einfach mit Java 8 geschehen:

%Vor%     
Alex Mamo 02.12.2017 05:20
quelle
0
%Vor%     
Niteesh Gupta 21.02.2018 06:32
quelle

Tags und Links