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; } }
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/147650.html
標籤:Java
