废话不多说,直接上代码
package test;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Stack;
import java.util.Vector;
import com.sun.org.apache.bcel.internal.generic.IRETURN;
public class Test {
public static void main(String[] args) {
String str = "中国你好吗>国你好吗>中国国家国国国国aabb;;;";
Map<Character,Integer> map = new HashMap<Character,Integer>();
char[] ch = str.toCharArray();//将字符串转为数组
/*将字符和出现的个数存入到Map*/
for(char c:ch){
if(map.get(c)==null){
map.put(c, 1);//为空的话值为1
}else{
Integer in = map.get(c);//得到的value值至少为1
in++;
map.put(c, in);
}
}
/* 使用for-each遍历
for (Character c : map.keySet()) {
System.out.println(map.get(c));
}
*/
//使用迭代器和entrySet遍历
Iterator<Entry<Character, Integer>> iterator=map.entrySet().iterator();
Integer count =Collections.max(map.values());//出现次数最多的值
Character character = null;
//存放次数最多的key
while(iterator.hasNext()) {
Map.Entry<Character, Integer> entry=(Map.Entry<Character, Integer>)iterator.next();
System.out.println(entry.getKey()+" "+entry.getValue());
//得到出现次数最多的值的key
if(entry.getValue().equals(count)) {
character=entry.getKey();
}
}
System.out.println("出现次数最多的是:"+character+"出现次数为"+count);
}
}此题当然可以使用keyset()遍历,但是没有entryset效率高
以上就是java实战之给出字符串,统计汉字或字母出现的个数的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号