黑马程序员技术交流社区
标题:
求解,想不明白
[打印本页]
作者:
lanbuohan
时间:
2013-7-13 18:05
标题:
求解,想不明白
本帖最后由 杨兴庭 于 2013-7-14 11:04 编辑
在一个txt文件中,统计每个字符出现的次数并输出,求解
作者:
王靖远
时间:
2013-7-13 18:14
先创建Map集合,集合以字符为key,字符出现次数为value.可以用字符流去读文件,读一个字符判断下该字符是否在集合中,不是的就把该字符作为key,1作为value存入。已存在集合中的话,就获取该key的value然后将value加1重新存入集合。
作者:
禾呈
时间:
2013-7-13 18:15
先定义一个 map类型的集合,键k用来存储文件中的字符,值v用来存储此字符出现的次数。 用字符流,读取文件中的一个字符,判断如果 集合的 键k 包含此字符,那么这个键对应的值加1,如果不包含,将此字符(k)与1(v)存入集合。
作者:
stormdzh
时间:
2013-7-13 18:25
上面的都是高手!
作者:
一木榜公
时间:
2013-7-13 18:36
还没学到啊……
作者:
花心々小土豆
时间:
2013-7-13 19:15
要得到每个字母和对应的次数,有映射关系,用map集合。
键用来保存字符,值用来保存该字符出现的次数,遍历txt中的字符,如果map集合中没有该字母,将该字母和 1 (这个字母出现一次)存入map集合中,如果字母在集合中有,将该键对应的值加 1 然后再次存入map集合中,最后将集合中的元素输出即可。
如果想让输出的字母有序,可以用treemap集合。
作者:
左手神刀
时间:
2013-7-13 22:57
把下面的代码稍加改造就能如你所愿了
//TreeMap的特点:
//如果已经有a这个键,并对应某这个值;再往里存a这个键,但对应的值变了,
//那么后存进来的会把前一个覆盖掉。
//我们可以利用TreeMap的这些小特点去判断 某个字符串当中有多少个不重复的字符,如果重复了就判断重复了 多少,下面的代码就可以实现。
import java.util.*;
class MapTest3
{
public static void main(String[] args)
{
charCount("aabfcdabcdfa");
}
public static void charCount(String str)//用于判断str这个字符串变量中有多少个不同
{ //的字符,每个字符有多少个是相同的。
char[]chs=str.toCharArray();
TreeMap<Character,Integer>tm=new TreeMap<Character,Integer>();
for(int x=0;x<chs.length;x++)
{
Integer value=tm.get(chs[x]);
//System.out.println(tm);
if(value==null)
{
tm.put(chs[x],1);//判断每一个字符进来时TreeMap中是不是已经存在。
} //如果不存在就把它存进来
else
{
value=value+1;
tm.put(chs[x],value);//如果存在就让value值加1在重新存进来
}
}
System.out.println("一共有"+tm.size()+"不同的字符");
System.out.println("这些字符分别是"+tm);
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2