Wortzählalgorithmus in C #

7

Ich suche nach einer guten Wortanzahl Klasse oder Funktion. Wenn ich etwas aus dem Internet kopiere und einfüge und es mit meinem benutzerdefinierten Wortzählalgorithmus und MS Word vergleiche, ist es immer um etwas mehr als 10% ausgeschaltet. Ich denke, das ist zu viel. Wissen Sie also einen genauen Wortzählungsalgorithmus in c #.

    
Luke101 27.10.2009, 19:27
quelle

6 Antworten

6

String.Split durch vordefinierte Zeichen. Verwenden Sie Interpunktionen, Leerzeichen (mehrere Leerzeichen entfernen) und alle anderen Zeichen, die Sie als "Worttrennzeichen" definieren.

Was hast du probiert?

Ich habe gesehen, dass der vorherige Benutzer für Links genagelt wurde, aber hier sind einige Beispiele für die Verwendung von Regex oder Char-Matching. Hoffe es hilft, und niemand wird verletzt X -)

String.Split-Methode (Char [])

Word-Zähler in C #

C # -Wordzahl

    
Adriaan Stander 27.10.2009, 19:33
quelle
8

Wie @astander vorschlägt, können Sie einen String.Split wie folgt machen:

%Vor%

Wenn Sie ein Array von Zeichen übergeben, können Sie mehrere Wortumbrüche trennen. Wenn Sie leere Einträge entfernen, können Sie keine Wörter mehr zählen.

    
Larsenal 27.10.2009 19:44
quelle
4

Verwenden Sie einen regulären Ausdruck, um Wörter zu finden (z. B. [\ w] +) und zählen Sie nur die Übereinstimmungen

%Vor%

regex.Match (_someString) .Count

    
user220583 27.04.2013 15:32
quelle
1

Sie müssen auch nach newlines , tabs und non-breaking spaces suchen. Ich finde es am besten, den Quelltext in ein StringBuilder zu kopieren und alle Zeilenumbrüche, Tabulatoren und Satzendezeichen durch Leerzeichen zu ersetzen. Teilen Sie dann die Zeichenfolge basierend auf Leerzeichen.

    
Bob Pittenger 20.04.2011 17:57
quelle
1

Ich hatte gerade das gleiche Problem in ClipFlair, wo ich WPM (Words-pro-Minute) für Movie Captions berechnen musste, also kam ich auf folgendes:

Sie können diese statische Erweiterungsmethode in einer statischen Klasse definieren und dann eine using-Klausel zum Namespace dieser statischen Klasse in jeder Klasse hinzufügen, die diese Erweiterungsmethode verwenden muss. Die Erweiterungsmethode wird mit s.WordCount () aufgerufen, wobei s eine Zeichenfolge (ein Bezeichner [Variable / Konstante] oder Literal)

ist %Vor%     
George Birbilis 22.01.2013 20:46
quelle
1

Hier ist die abgespeckte Version der c # Code-Klasse, die ich zum Zählen von Wörtern, asiatischen Wörtern, Zeichen usw. gemacht habe. Das ist fast dasselbe wie Microsoft Word. Ich habe den Originalcode zum Zählen von Wörtern für Microsoft Word-Dokumente entwickelt.

%Vor%     
quelle

Tags und Links