首先我没有考虑统计算法,而是想怎么用c#中较为简单的方法去实现。考虑到C#中字符串类String的方法
Split,通过测试确实能完成字母的频次统计以下是源码。
private void button3_Click(object sender,
EventArgs e)
{
String CharStrArray="";
int[] t=new
int[26];
GetCharCount(textBox1.Text, ref CharStrArray,ref t) ;
String strTemp="";
for (int
i = 0; i
< CharStrArray.Length; i++)
{
strTemp += CharStrArray[i].ToString()+":"+t[i].ToString()+"
";
}
textBox2.Text =
strTemp;
}
private void GetCharCount(String SourceStr, ref String
CharStrArray,ref
int []CharCount)
{
SourceStr = SourceStr.ToLower();
StringBuilder CharStr=new
StringBuilder("");
for (int
i = 0; i
< SourceStr.Length; i++)
{
if(SourceStr[i].ToString()!="
"&&(!CharStr.ToString().Contains(SourceStr[i].ToString())))
{
CharStr.Append(SourceStr[i]);
}
}
CharCount=new int[CharStr.Length];
for (int
j = 0; j
< CharStr.Length; j++)
{
CharCount[j] =
SourceStr.Split(new Char[] {
CharStr[j]}).Length -
1;
}
CharStrArray =
CharStr.ToString();
}
当textBox1.Text输入为:beijing huanying
ni
textBox2.Text输出为:b:1 e:1 i:4 j:1 n:4 g:2 h:1 u:1 a:1
y:1
但是对于本问题,应该有更好的统计算法,有兴趣可以研究一下。
加载中,请稍候......