用java统计文本中相同字符出现的次数

比如任意字符串:asafgldsjjssdlfj 统计出 a出现几次,s出现几次,d出现几次,就类似这样

通过循环遍历字符串,然后一个个的比较,记下相同字符的个数就行了。代码如下:

import java.util.Scanner;
import java.util.TreeMap;
/**
 * 从键盘输入16位长整数,编程统计每个数字出现的个数
 * @author young
 *
 */
public class CharMapDemo {
// 统计数字或者字符出现的次数
public static TreeMap<Character, Integer> Pross(String str) {
char[] charArray = str.toCharArray();

TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();

for (int x = 0; x < charArray.length; x++) {
if (!tm.containsKey(charArray[x])) {
tm.put(charArray[x], 1);
} else {
int count = tm.get(charArray[x]) + 1;
tm.put(charArray[x], count);
}
}
return tm;
}

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// System.out.println("请输入一个长整数:");
// int temp = sc.nextInt();
// String str = String.valueOf(temp);
// TreeMap<Character, Integer> tm = Pross(str);
// System.out.println(tm);

System.out.println("请输入一个字符串:");
String str = sc.nextLine();
TreeMap<Character, Integer> tm = Pross(str);
System.out.println(tm);
}
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-06
importjava.util.*;
publicclasstest{
publicstaticvoidmain(stringargs[]){
strings="abcdad";//待测试的字符串
map<character,integer>result=getcharmaps(s);
system.out.println(result);//打印出字符串中各字符出现的次数!

}
publicstaticmap<character,integer>getcharmaps(strings){
map<character,integer>map=newhashmap<character,integer>();
for(inti=0;i<s.length();i++){
characterc=s.charat(i);
integercount=map.get(c);
map.put(c,count==null?1:count+1);
}
returnmap;

}

} packagetext;
importjava.util.*;
publicclasstest{
publicstaticvoidmain(string[]args){
stringtext="gebing";//测试数据
mapmap=newhashmap();//保存数据出现的次数的集合
for(inti=0;i<text.length();i++)//遍历测试数据
{
chara=text.charat(i);//取出单个字符
if(map.get(a)!=null)//如果这个字符已经存在
{
intnum=integer.parseint(map.get(a).tostring());
map.put(a,num+1);//数量加一次
}else
{
map.put(a,1);//如果这个字符不存在就为1
}
}
object[]aa=map.keyset().toarray();//取出集合所有的key
for(inti=0;i<aa.length;i++)//再遍历
{
system.out.println(aa[i]+"出现了"+map.get(aa[i])+"次");
}
}
}本回答被网友采纳
第2个回答  2015-10-06
importjava.util.*;
publicclasstest{
publicstaticvoidmain(stringargs[]){
strings="abcdad";//待测试的字符串
map<character,integer>result=getcharmaps(s);
system.out.println(result);//打印出字符串中各字符出现的次数!

}
publicstaticmap<character,integer>getcharmaps(strings){
map<character,integer>map=newhashmap<character,integer>();
for(inti=0;i<s.length();i++){
characterc=s.charat(i);
integercount=map.get(c);
map.put(c,count==null?1:count+1);
}
returnmap;

}

} packagetext;
importjava.util.*;
publicclasstest{
publicstaticvoidmain(string[]args){
stringtext="gebing";//测试数据
mapmap=newhashmap();//保存数据出现的次数的集合
for(inti=0;i<text.length();i++)//遍历测试数据
{
chara=text.charat(i);//取出单个字符
if(map.get(a)!=null)//如果这个字符已经存在
{
intnum=integer.parseint(map.get(a).tostring());
map.put(a,num+1);//数量加一次
}else
{
map.put(a,1);//如果这个字符不存在就为1
}
}
object[]aa=map.keyset().toarray();//取出集合所有的key
for(inti=0;i<aa.length;i++)//再遍历
{
system.out.println(aa[i]+"出现了"+map.get(aa[i])+"次");
}
}
}
相似回答