java统计文件中每个字符出现的个数
本文实例为大家分享了java统计文件中字符个数的具体代码,供大家参考,具体内容如下
packagecom.zhu.io;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.Map;
importjava.util.Set;
importjava.util.TreeMap;
publicclassFileCharacter{
Mapmap=newTreeMap();
publicFileCharacter(StringfileName)throwsIOException{
BufferedReaderbr=newBufferedReader(newFileReader(newFile(fileName)));
intx;
while((x=br.read())>0){
Characterkey=newCharacter((char)x);
if(map.containsKey(key)){
intcount=map.get(key);
map.remove(key);
map.put(key,++count);
}else{
map.put(key,1);
}
}
}
publicintgetCount(charc){//获取字符在文件中出现的个数
returnmap.get(c);
}
publicSetgetAllChar(){//获取文件中字符的Set集合
returnmap.keySet();
}
publicMapgetMap(){//获取字符与其出现个数组成的Map集合
returnmap;
}
publicvoidprintInfo(){//打印信息
Set>set=map.entrySet();
for(Map.Entryentry:set){
System.out.println("["+entry.getKey()+"]"+"\t"+"count:"+entry.getValue());
}
}
publicstaticvoidmain(String[]args)throwsIOException{
FileCharacterfc=newFileCharacter("e:\\test.txt");
fc.printInfo();
}
}
小编另为大家分享一段代码:计算一个字符串中每个字符出现的次数
importjava.util.HashMap;
importjava.util.Map;
importjava.util.Scanner;
/**
*计算一个字符串中每个字符出现的次数
*
*思路:
*通过toCharArray()拿到一个字符数组-->
*遍历数组,将数组元素作为key,数值1作为value存入map容器-->
*如果key重复,通过getKey()拿到value,计算value+1后存入
*/
publicclassTest01{
publicstaticvoidmain(String[]args){
System.out.println("请输入字符串:");
Scannersc=newScanner(System.in);
while(sc.hasNextLine()){
Stringstr=sc.nextLine();
Mapmap=count(str);
System.out.println(map);
}
}
publicstaticMapcount(Stringstr){
Mapmap=newHashMap();
char[]array_char=str.toCharArray();//把字符串转成字符数组
for(chararr_char:array_char){//遍历字符数组
if(map.containsKey(arr_char)){//查看字符是否在map的key中存在,如果存在
Integerold=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);
}
}
returnmap;
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。