您的位置:首页 > 编程语言 > C#

C#统计单词词频

2013-04-23 16:27 330 查看
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace 英语词频
{
public partial class Form1 : Form
{
public Form1()
{  InitializeComponent();
    }

private void button1_Click(object sender, System.EventArgs e)
{

Stream myStream ;
StreamReader myReader;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "E:\\";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
//openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;

if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
string sLine;
myReader = File.OpenText(openFileDialog1 .FileName);
while ((sLine = myReader.ReadLine()) != null)
{
richTextBox1.Text += sLine;
}

}
}
catch (Exception ex)
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}

}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.Text = "";
}

private void richTextBox1_TextChanged(object sender, EventArgs e)
{

}

private void button2_Click(object sender, EventArgs e)
{
string W = richTextBox1.Text;
//定义一个字符数组
char[] c = { ' ', ',', '.', '?', '!', ':', ';', '\'', '\"' };
//分隔字符串后产生的字符串数组
string[] S = W.Split(c);
//建立哈希表
Hashtable ha = new Hashtable();
for ( int i = 0; i < S.Length; i++)
{
//判断文本是否进入
if (ha.ContainsKey(S[i]))
{
ha[S[i]] = (int)ha[S[i]] + 1;
}
else
{
ha.Add(S[i], 1);
}
}
//遍历哈希表
foreach (DictionaryEntry de in ha)
{
//输出
Console.WriteLine(de.Key + ":" + de.Value);
//追加文本
richTextBox2.AppendText(de.Key + ":" + de.Value + "\n");

}
int Sum=0;
for (int i = 0; i < S.Length; i++)
{
textBox1.Text = (i+1).ToString();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: