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); } publicSet getAllChar(){//获取文件中字符的Set集合 returnmap.keySet(); } publicMap getMap(){//获取字符与其出现个数组成的Map集合 returnmap; } publicvoidprintInfo(){//打印信息 Set >set=map.entrySet(); for(Map.Entry entry: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); } } publicstaticMap count(Stringstr){ Map map=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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。