如何判斷一個文件的每一個文字出現次數

package com.hu;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*
 *   讀入123.txt文本
 *   判斷一個文件的每一個文字出現次數
 *
 * */
public class jiexi {
    public static void main(String[] args) throws IOException {
     //建立StringBUilder用來存放全部字節 StringBuilder sb
= new StringBuilder();
     //建立輸入流 BufferedReader bufferedReader
= new BufferedReader(new FileReader("123.txt")); String lin; while ((lin = bufferedReader.readLine()) != null) {
     //添加 sb.append(lin); }
     //關流 bufferedReader.close();
     //調用方法jiexi1 HashMap
<Character, Integer> characterIntegerHashMap = jiexi1(sb);      //遍歷characterIntegerHashMap集合 Set<Map.Entry<Character, Integer>> keys = characterIntegerHashMap.entrySet();
     //建立計數count
int count=0; for (Map.Entry<Character, Integer> key : keys) {
       //輸出集合中的內容 System.out.print(key.getKey()
+"---"+key.getValue()+" ");
       count
++;
       //換行
if (count==10){ System.out.println(); count=0; } } } public static HashMap<Character, Integer> jiexi1(StringBuilder sb) {
     //建立一個以字符爲鍵,以數字爲值的map集合 Map
<Character, Integer> map = new HashMap<>();
     //遍歷傳來的sb
for (int i=0;i<sb.length();i++) {
       //以char格式接收sb
char c = sb.charAt(i);
       //判斷map集合中的鍵和當前字符是否存在
if ((map.containsKey(c)) != false) {
          //遍歷map Set
<Map.Entry<Character, Integer>> entries = map.entrySet(); for (Map.Entry<Character, Integer> entry : entries) {
            //獲取當前鍵和值 Character key
= entry.getKey(); Integer value = entry.getValue();
            //建立記錄變量
int count=value;
            //比較當前map的鍵和當前字符是否相等
if (key.equals(c)){
               //相等加1 count
++; map.put(c,count); } }
        //若是不相等給這個字符初始化爲出現一次 }
else { map.put(c,1); } }
     //返回map集合
return (HashMap<Character, Integer>) map; } }
相關文章
相關標籤/搜索