package 课后练习; import java.io.*; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.*; public class charactercount { public static void main(String[] args) { try { BufferedReader br = new BufferedReader(new FileReader("D:\\test.txt")); String txtLine = null; int i=0; String[] myArray = new String[500]; while((txtLine=br.readLine())!=null){ myArray[i] = txtLine; i++; } br.close(); for(int s=0;s<i;s++){ System.out.println(myArray[s]); } String s; StringBuffer sb = new StringBuffer(); while ((s = br.readLine()) != null) { sb.append(s); } Map<String,Integer> map = new HashMap<String, Integer>(); StringTokenizer st = new StringTokenizer(sb.toString()); while (st.hasMoreTokens()) { String letter = st.nextToken(); int count; if (map.get(letter) == null) { count = 1; } else { count = map.get(letter).intValue() + 1; } map.put(letter,count); } Set<课后练习01> set = new TreeSet<课后练习01>(); for (String key : map.keySet()) { set.add(new 课后练习01(key,map.get(key))); } System.out.println("输出:"); int count = 1; for (Iterator<课后练习01> it = set.iterator(); it.hasNext(); ) { 课后练习01 w = it.next(); System.out.println("第" + count + "名为字母:" + w.getKey() + " 出现的次数为: " + w.getCount()); if (count == 3) break; count++; } }catch (FileNotFoundException e) { System.out.println("文件未找到~!"); } catch (IOException e) { System.out.println("文件读异常~!"); } } }
要统计一个单独的文件中的各个字母个数,首先要建一个文件夹,里面写一段话,我在D盘里建了一个test文本文档。然后在程序中首先读取文件,然后用
readLine方法依次统计,对文章里的每一个字母遍历,遇到每一个字母的时候,分别加1。最后分别输出每一个字母的个数。但是这个程序在最后运行之后的结果是,先输出文件里的内容,
然后输出文件读异常,在调试之后依然出现这个错误。现在先把这个程序写道这里,然后再慢慢问别人,然后改错误。