讀取txt文件 統計每個字符出現的次數


需求:讀取txt文件 <Think in Java中文版 > 統計每個字符出現的次數。

package com.wh.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

public class Work1 {
    public static void main(String[] args) {
        fread("D:\\MyEclipse\\worktest\\src\\Think in Java中文版.txt");
    }
    // 讀取文件:
    public static void fread(String fileurl) {
        File file = new File(fileurl);
        BufferedReader bfr = null;
        try {
            bfr = new BufferedReader(new FileReader(file));
            String tem = null;
            String value = "";
            while ((tem = bfr.readLine()) != null) {
                value = value + tem;
            }
            System.out.println(value);
            // 將讀取的字符串轉換成字符數組:
            char[] c = value.toCharArray();
            // 定義一個map來存儲結果:
            // HashMap<Character,Integer> tm = new
            // HashMap<Character,Integer>(Collections.reverseOrder());
            TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>(Collections.reverseOrder());// TreeMap可排序(傳入一個反轉比較器)

            for (int i = 0; i < c.length; i++) {
                char charSrc = c[i];
                if (tm.containsKey(charSrc)) { // 判斷該鍵的值是否存在
                    int count = tm.get(charSrc);
                    tm.put(charSrc, count + 1);
                } else {
                    tm.put(charSrc, 1);
                }
            }

            // 取出Map中的鍵和值
            Iterator<Map.Entry<Character, Integer>> titer = tm.entrySet().iterator();
            while (titer.hasNext()) {
                Map.Entry<Character, Integer> map = titer.next();
                char key = map.getKey();
                int valu = map.getValue();
                System.out.println(key + "出現過" + valu + "次!");
            }

        } catch (Exception e) {
            System.err.println("文件讀取錯誤");
        } finally {
            try {
                if (bfr != null) {
                    bfr.close();
                }
            } catch (Exception e2) {
                System.err.println("文件關閉錯誤");
            }
        }

    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM