其实可以通过Map来实现,个人该绝map应该效率更高,代码更简练- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
- import java.util.TreeMap;
- public class Test {
- public static void main(String[] args) throws Exception {
-
- String s = "baedafdsaj....sdafas";
- //获取各个字符出现的次数并输出
- TreeMap<Character,Integer> map = charCount(s);
- Set<Map.Entry<Character,Integer>> entrySet = map.entrySet();
- Iterator<Map.Entry<Character,Integer>> it = entrySet.iterator();
- while(it.hasNext()){
- Map.Entry<Character,Integer> entry = it.next();
- System.out.println(entry.getKey()+":"+entry.getValue()+"次");
- }
- }
-
- /**
- * 得到一个TreeMap的方法,其中key值为字符串中对应的各个字符,Value值为字符出现的次数
- * @param str
- * @return
- */
- public static TreeMap<Character,Integer> charCount(String str){
- //将此字符串转换成一个字符数组
- char[] ch = str.toCharArray();
- TreeMap<Character,Integer> map = new TreeMap<Character,Integer>();
- for(char c : ch){
- if(c==' '||c=='\t'){//如果是空字符或者是Tab键字符,则不执行下面的操作
- continue;
- }
- if(map.containsKey(c)){//判断map中是的key值是否有字符串c,如果有则让value值加1,没有则value值存入1
- int num = map.get(c);
- map.put(c, num+1);
- }else{
- map.put(c, 1);
- }
- }
- return map;
- }
- }
复制代码 |