java中怎么统计一个字符串中每个字符的出现次数

如题所述

操作如下:

String str ="2342asfghgyu56asdasda";Map<String,Integer> maps = new HashMap<String,Integer>();for(int i=0;i<str.length();i++){。

String key = String.valueOf((str.charAt(i)));if(!maps.containsKey(key)),maps.put(key, 1);else{int val =maps.get(key);maps.put(key, val+1);

for(Map.Entry i : maps.entrySet()){System.out.println(i.getKey()+ "=="+i.getValue());

具体方法:

package com.haotj.demo13;import java.util.Map;import java.util.Set;importjava.util.TreeMap;public class Test,public static void main(String[] args),String str。

"asdlkfjlaksdlkjfdsjlkazxcsdklfwuertiopwrljlflsdalxvclzjlksdfljklsdfuiafjdgllfdgdaslfsdjkldskfjdsl"; Map<Character, Integer> map = countChar(str);。

//遍历//1-Set<Character> set = map.keySet();for(Character key : set)System.out.println(key + "=" + map.get(key));//2-//Map中无迭代器,不能如下使用// for(Map.Entry<Character, Integer> me : map)// {// }Set<Map.Entry<Character, Integer>> entrys = map.entrySet();。

for(Map.Entry<Character, Integer> me : entrys)System.out.println("===" + me.getKey() + "=" + me.getValue()/*** 统计一个字符串中,每个字符出现的次数。

* <功能详细描述>* @param str:被统计的字符串,* @return 记录了每个字符及对应该字符出现的次数,* @see [类、类#方法、类#成员]*/public static Map<Character, Integer> countChar(String str)

//用于存放字符及对应次数。TreeMap<Character, Integer> tm = new TreeMap<Character, Integer>();//得到字符串中的每个字符for(int i = 0; i < str.length(); //取得字符串中每个字符,Character ch = str.charAt(i);

//在tm 对象中,判断该字符是否存在,//如果存在,则取得该key 对应的value 值,将value 值加1,再存入该集合对象,//如果不存在,则将该字符及1,存入到tm 中if(!tm.containsKey(ch)),else。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-21
public static String method(String sc, String s) {
char c = sc.charAt(0);
for(int i=0;i<sc.length();i++){
if(i==sc.length()-1&&sc.charAt(sc.length()-1)==c){
s = s + (i+1) + c;
}
if(i>0&&sc.charAt(i)!=c) {
s = s + i + c;
return method(sc.substring(i), s);
}
}
return s;
}
public static void main(String[] args) {
String sc = new Scanner(System.in).nextLine();
String s = "";
System.out.println(method(sc,s));
}
这样最简单,请笑纳!
第2个回答  2016-08-03
String str ="2342asfghgyu56asdasda";
Map<String,Integer> maps = new HashMap<String,Integer>();
for(int i=0;i<str.length();i++){
String key = String.valueOf((str.charAt(i)));
if(!maps.containsKey(key))
maps.put(key, 1);
else{
int val =maps.get(key);
maps.put(key, val+1);
}

}

for(Map.Entry i : maps.entrySet()){
System.out.println(i.getKey()+ "=="+i.getValue());
}本回答被提问者采纳
相似回答