A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

如何取出一个字符串中字母出现的次数

4 个回复

倒序浏览
求解答,求大神支招
回复 使用道具 举报
kingxiao 来自手机 中级黑马 2015-8-19 20:33:13
藤椅
定义一个计数器,查找,每次找到一个加1,然后,判断次数就好了
回复 使用道具 举报
如果你说的是同一个字母的话可以这样:
  1. class Tran
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str = "abcacdgabdegakali;";

  6.                 char[] arr = str.toCharArray();
  7.                
  8.                 int count = 0;
  9.                 for(int i = 0;i<arr.length;i++){
  10.                         if(arr[i]=='a')
  11.                                 count++;
  12.                 }
  13.                 System.out.println(count);
  14.         }

  15. }
复制代码

当然你可以用map集合存储字符和字符数,取所有字母出现的值。

如果你说的是 字母和其他字符组成的字符串中字母出现的次数的话:
  1. class Tran
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 String str = "jlkjAjkIKkA*&%(k*&ljlj&#@;";

  6.                 char[] arr = str.toCharArray();
  7.                
  8.                 int count = 0;
  9.                 for(int i = 0;i<arr.length;i++){
  10.                         if((arr[i]>='a' && arr[i]<='z' )||(arr[i]>='A' && arr[i]<='Z'))
  11.                                 count++;
  12.                 }
  13.                 System.out.println(count);
  14.         }

  15. }
复制代码
回复 使用道具 举报
  1. 用TreeMap集合装,字母装在key中,次数装在value中,把字符串转换成字符数组进行遍历
复制代码

  1. import java.util.Iterator;
  2. import java.util.Set;
  3. import java.util.TreeMap;

  4. public class text01 {
  5. public static void main(String[] args) {
  6. TreeMap<Character,Integer> tr =ts("ddsgdfgdfgerfdgdfdf");
  7. Set<Character> set = tr.keySet();
  8. Iterator<Character> it = set.iterator();
  9. while(it.hasNext()){
  10. Character ch =it.next();
  11. Integer in = tr.get(ch);
  12. System.out.print(ch+"("+in+")");
  13. }


  14. }
  15. public static TreeMap<Character,Integer> ts(String s){
  16. TreeMap<Character,Integer> tr =new TreeMap<Character,Integer>();
  17. char[]ch =s.toCharArray();//字符串转换才字符数组
  18. for(int i=0;i<s.length();i++){        //遍历字符数组
  19. if(('z'>=ch[i] && ch[i]>='a') ||( 'Z'>=ch[i]&& ch[i]>='A'))
  20. {
  21. Integer value = tr.get(ch[i]);//用一个Ineger的变量获取
  22. int count = 0;//
  23. if(value!=null)//不等于null的话就把值赋给count
  24. {
  25. count=value;//把值付给count
  26. }
  27. count++;//自增一次
  28. tr.put(ch[i], count);//装入集合中
  29. }
  30. continue;
  31. }       
  32. return tr;
  33. }
  34. }
复制代码



回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马