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 #.
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 -)
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
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.
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%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%