最近用C#写huffman编译码程序的时候发现了一些问题,这里整理一下(新手勿喷): [文件为非中文文件]
1.文件中出现的各个字符的出现频率的取得。其实现方法如下:
1.1很容易想到一种一个个(Streamreader.read)读入或者一行行(Streamreader.readLine)读入或者整个文本读入(Streamreader.readToEnd),再进行匹配。可以预见,这个方法非常慢,对于几百kb的txt或者几Mb的txt会很慢。
1.2这里看到一种方法是读入后,进行整个文本的查找,替换成空,前后的字符串长度的变化即为这个字符出现的频次。
c2 = str.Length - str.Replace("A", String.Empty).Length;
1.3 根据1.2,想到另外一种方法。即要查找的字符作为分隔符,将原字符串分隔为多个子串,然后求子串的数目即可
c3 = str.Split(new char[] { 'A' }).Length - 1;
统计整个文本的字符时应注