2012-01-05 5 views
0

単語がファイルに何回表示されるかをカウントします。これを行う簡単な方法はありますか?ファイル内で単語が何回検出されたかをカウントします。

+2

「宿題」タグがありますか? –

+2

あなたはどの部分に問題がありますか? (1)ファイルを読む、(2)ファイルを単語に分割する、(3)単語の出現を数える、(4)結果を印刷する –

+2

しかし、あなたはすでに簡単な方法を知っています - stackoverflow ;-)でお問い合わせください – necromancer

答えて

2

ファイルはストレートフォワードテキストファイルであれば、それはC#で深く簡単です...

private static int GetWordCount(string fileName, string word) 
{ 
    string content = File.ReadAllText(fileName); 
    string[] words = content.Split(new char[] {'.', '.', ' ', '?', '\n', '\r'}, 
        StringSplitOptions.RemoveEmptyEntries); 
    return words.Count(q => q == word); 
} 

このメソッドは、文字列にテキストを読み、その後、いくつかの区切り文字に応じて文字列を分割します。次に、LINQ関数が呼び出され、カウントが取得され、カウントされます。

+0

ファイル内のすべての単語数を数えたいと思います。私に解決策を教えてくれませんか? – Tina

+0

これは簡単なことですが、実際は別の質問です。この質問は、1語の出現数を数えることと関係がある。新しい質問が別の質問のために開かれるべきです、そして、私は今、より高いアップがこの質問を閉じたのを見る... –

0
static void Main(string[] args) 
{ 
    StreamReader oReader; 
    if (File.Exists(@"C:\TextFile.txt")) 
    { 
      Console.WriteLine("Enter a word to search"); 
      string cSearforSomething = Console.ReadLine().Trim(); 
      oReader = new StreamReader(@"C:\TextFile.txt"); 
      string cColl = oReader.ReadToEnd(); 
      string cCriteria = @"\b"[email protected]"\b"; 
      System.Text.RegularExpressions.Regex oRegex = new System.Text.RegularExpressions.Regex(cCriteria,RegexOptions.IgnoreCase); 

      int count = oRegex.Matches(cColl).Count; 
      Console.WriteLine(count.ToString()); 
    } 

    Console.ReadLine(); 
} 

OR

もう一つの方法。これは理解を深めるのに役立ちます。

コレクション/ジェネリックコンセプトを使用して、私たちは簡単に基準を達成します。以下のコードを確認して、あなたのscenerioに従って更新してください。

1)は、最初filestream、輸入IO名前空間を使用してテキストファイル()、

System.IO.StreamReader StreamReader1 = 
new System.IO.StreamReader(Server.MapPath("test.txt")); 

2)文字列ビルダに追加をお読みください。

StringBuilder sbData = new StringBuilder(); 
sbData.Append(StreamReader1.ReadToEnd()); 

3.)StringBuilder(スペース、Fullstops、疑問符、感嘆符、アポストロフィ、新ライン)

string[] arrDataCollection = sbData.ToString().Split(' '); 

4)SortedListのための辞書を作成しますから単語を分割します。

​​

5.)流出データをループして別個のコレクションを取得します。

for (int i = 0; i < Words.Length; i++) 
{ 
    slData.Add(i, arrDataCollection[i]); 
} 

6.)個別の単語を数えて、Hashtableに保存してください。

Hashtable htCollections = new Hashtable(); 
foreach (KeyValuePair<int, string> kvp in slData) 
{ 
    table.Add(kvp.Value, kvp.Key); 
} 

7)最後に、我々の要求どおりHashtableからそれをフィルタリングし、これはあなたを助けることを願っています。

+0

ありがとう、ありがとう。 – Tina

+0

しかし、私はまだ作成されたハッシュテーブルの使い方を知らないのですか? – Tina

+0

私は自分の問題を正確には記述していないかもしれません。例:string [] str = new string [] {"単語"、 "値"、 "単語"、 "値"、 "テスト"、 "単語"}; "単語"、 "値 "と"テスト "。 – Tina

関連する問題