亲宝软件园·资讯

展开

java统计文件中字符个数 java统计文件中每个字符出现的个数

给糖吃的小骗子 人气:0

package com.zhu.io;
 
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
 
public class FileCharacter{
 Map<Character,Integer>map=new TreeMap<Character,Integer>();
 public FileCharacter(String fileName) throws IOException{
 BufferedReader br=new BufferedReader(new FileReader(new File(fileName)));
 int x;
 while((x=br.read())>0){
  Character key=new Character((char)x);
  if(map.containsKey(key)){
  int count=map.get(key);
  map.remove(key);
  map.put(key, ++count);
  }else{
  map.put(key, 1);
  }
 }
 }
 public int getCount(char c){      //获取字符在文件中出现的个数
 return map.get(c);
 }
 public Set<Character> getAllChar(){   //获取文件中字符的Set集合
 return map.keySet();
 }
 public Map<Character,Integer> getMap(){  //获取字符与其出现个数组成的Map集合
 return map;
 }
 public void printInfo(){         //打印信息
 Set<Map.Entry<Character, Integer>>set=map.entrySet();
 for(Map.Entry<Character, Integer> entry:set){
  System.out.println("[ "+entry.getKey()+" ]"+"\t"+"count:"+entry.getValue());
 }
 }
 public static void main(String[] args) throws IOException {
 FileCharacter fc=new FileCharacter("e:\\test.txt");
 fc.printInfo();
 }
}

小编另为大家分享一段代码:计算一个字符串中每个字符出现的次数

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
 * 计算一个字符串中每个字符出现的次数
 * 
 * 思路:
 * 通过toCharArray()拿到一个字符数组-->
 * 遍历数组,将数组元素作为key,数值1作为value存入map容器-->
 * 如果key重复,通过getKey()拿到value,计算value+1后存入
 */
public class Test01 {
  public static void main(String[] args) {
    System.out.println("请输入字符串:");
    Scanner sc=new Scanner(System.in);
    while (sc.hasNextLine()){
      String str=sc.nextLine();
      Map<Character,Integer> map =count(str);
      System.out.println(map);
    }
  }
  public static Map<Character,Integer> count(String str){
    Map<Character,Integer> map=new HashMap<Character,Integer>();
    char[] array_char=str.toCharArray();//把字符串转成字符数组
    for(char arr_char: array_char){//遍历字符数组
      if(map.containsKey(arr_char)){//查看字符是否在map的key中存在,如果存在
        Integer old=map.get(arr_char);//通过key获取value的值
        map.put(arr_char,old+1);//把字符放入map的key中,value设置为通过key获取value的值+1
      }else{//查看字符是否在map的key中存在,如果不存,把字符放入map的key中,value默认设置为1
        map.put(arr_char,1);
      }
    }
    return map;
  }
}

加载全部内容

相关教程
猜你喜欢
用户评论