黑马程序员技术交流社区

标题: 字符串的有关问题 [打印本页]

作者: 官珺伟    时间: 2014-4-20 12:18
标题: 字符串的有关问题
本帖最后由 官珺伟 于 2014-4-20 21:59 编辑

取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...
作者: anqi    时间: 2014-4-20 12:33
本帖最后由 anqi 于 2014-4-20 12:41 编辑
  1. public class Convert {      
  2.     public static void main(String[] args) {  
  3.         String str = "abcde%^kka27qoq";
  4.         CountChar(str);  
  5.     }   
  6.     private static void CountChar(String str) {  
  7.         char[] c = str.toCharArray();  //转换为字符数组
  8.         System.out.println(c);  
  9.         Map<Character,Integer> map = new LinkedHashMap<Character,Integer>();  //建立一个Map集合(因为map集合key相同会覆盖)
  10.         for (int i = 0; i < c.length; i++) {   //变量char[]数组
  11.             if ((c[i] <= 90 && c[i] >= 65)||(c[i]>=97&&c[i]<=112)) {   //判断只取字母
  12.                     //往集合里面添加
  13.                 if (!(map.keySet().contains(c[i]))) {  
  14.                     map.put(c[i], 1);  //第一次出现就添加一次
  15.                 } else {  
  16.                     map.put(c[i], map.get(c[i]) + 1);  //多次出现就取出出现的次数在加1后填入
  17.                 }  
  18.             }  
  19.         }  
  20.         //将集合里面的内容转换为字符串
  21.         StringBuilder sb = new StringBuilder();  
  22.         Iterator<Map.Entry<Character,Integer>> it = map.entrySet().iterator();  
  23.         while (it.hasNext()) {  
  24.             Map.Entry<Character,Integer> entry = it.next();  
  25.             sb.append(entry.getKey() + "(" + entry.getValue() + ")");  
  26.         }  
  27.         System.out.println(sb);  
  28.     }  
  29. }  
复制代码

作者: の放下执著    时间: 2014-4-20 21:41
取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2