日期:2014-05-20  浏览次数:20790 次

数字统计
文件out.txt中内容:
2765<6720<2765
1236===1236===1236
2678---------0267-----0256
567 / 12679 / 2457
2567/4579/4578

请编写程序,统计每个数字0~9文件中出现的次数。
结果如下:
文字出现了5行
0出现3次
1出现4次
2出现12次
3出现3次
4出现3次
5出现8次
6出现12次
7出现11次
8出现2次
9出现2次


------解决方案--------------------
Java code


import java.io.*;

public class Counter {
  
  public static void main(String[] args) throws Exception {
    
    InputStream in = new FileInputStream(new File("out.txt"));
    BufferedReader reader = new BufferedReader(
            new InputStreamReader(in));
    
    String line;
    int[] counters = new int[10];
    int lineCounter = 0;
    while( (line = reader.readLine()) != null ) {
      
      lineCounter++;
      count(line, counters);
    }
    
    System.out.println("文字出现了" + lineCounter + "行");
    for(int i=0; i<counters.length; i++) {
      
      System.out.printf("%d出现%d次\n", i, counters[i]);
    }
    
    reader.close();
    in.close();
  }
  
  private static void count(String line, int[] counters) {
    
    for(int i=0; i<line.length(); i++) {
      
      char c = line.charAt(i);
      if( Character.isDigit(c) )
        counters[c - '0']++;
    }
  }
}