2016-03-26 4 views
1

Also hier ist der Deal. Angenommen, ich habe eine ".txt" -Datei, die irgendeine Art von Text (any) enthält. Ich brauche ein Programm, um jedes Zeichen im Text einschließlich Symbole, Zahlen, Leerzeichen usw. zu lesen. Nachdem ich es brauche, um die Häufigkeit des Vorkommens jedes gelesenen Zeichens zu zählen.Brauchen Sie Hilfe bei der Entscheidung richtigen Weg, um die einzelnen Zeichen eines Textes zu speichern

nun das Lesen von Text char von char ist einfach:

string text = File.ReadAllText("text.txt"); 
foreach (char c in text) Console.WriteLine(c); 

Was wird der beste Weg, um jedes Zeichen aus einer TXT-Datei zu speichern und mit ihnen nach der Arbeit?

+0

Da jedes Zeichen ausgewertet werden muss, verwenden Sie [File.ReadLines] (https://msdn.microsoft.com/en-us/library/system.io.file.readlines (v = vs.110) .aspx) anstelle von File.ReadAllText. ReadLines liest die Zeilen 1 zu 1 und kann ausgewertet werden, während jede Zeile gelesen wird, wobei ReadAllText den gesamten Dateiinhalt in die String-Variable einliest, die dann erst ausgewertet wird, nachdem die gesamte Datei gelesen wurde. –

Antwort

3

Da brauchen Sie die Zeichen sowie die Anzahl der auftretenden Zeichen. Betrachten von Dictionary<char,int> mit Ihnen helfen:

Dictionary<char,int> dict = new Dictionary<char,int>(); 
for (char c in text){ 
    if (dict.ContainsKey(c)) //exist add count of the existing item 
     dict[c] = dict[c] + 1; 
    else //does not exist, create new item 
     dict.Add(c,1); 
} 

von Dictionary verwenden, können Sie Dinge wie diese machen könnte, die scheinen am besten Ihren Bedürfnissen zu passen:

dict.Keys; //to get all characters (Keys) you store in the dictionary before 
dict.ContainsKey('a'); //to check if the Dictionary has 'a' as one of its keys 
dict['a']; //to get the value dictionary item with character 'a' as its Key 
dict.Add('a',1); //add new key 'a' to the dictionary with the value of 1 
+0

Ihre Antwort scheint die Bedürfnisse zu erfüllen. Danke für den Vorschlag! – Lenny

+0

@Lenny ah ja ... wie der Name 'Dictionary' vermuten lässt. :) Sie könnten mehr über 'Dictionary' herausfinden, und irgendwann möchten Sie vielleicht auch etwas über' List' erfahren. Beide sind sehr nützliche Klassen zu wissen. :) Checkout 'System.Collections.Generic' Namespace. – Ian

+0

Okay. Ich werde über beide lernen und versuchen, sie zu verwenden – Lenny

1

ich sagen würde mit Liste würde in dieser Arbeit Fall.

Verwandte Themen