当前位置:   article > 正文

查询字符串中字母的个数(两种实现方式1,list与set集合 2,map集合)_查找字符串中某字母出现的次数

查找字符串中某字母出现的次数

题目:

取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...

第一种方式(set和list结合使用):

  1. package itheima;
  2. import java.util.ArrayList;
  3. import java.util.LinkedHashSet;
  4. import java.util.List;
  5. import java.util.Set;
  6. /**
  7. * .取出一个字符串中字母出现的次数。如:字符串:"abcde%^kka27qoq" ,输出格式为:a(2)b(1)k(2)...
  8. * @author Administrator
  9. *
  10. */
  11. public class Demo6 {
  12. public static void main(String[] args) {
  13. String str="abcdekka27qoA*&AAAq";
  14. //查询字符串中字母的个数的函数
  15. countStringNumber(str);
  16. }
  17. private static void countStringNumber(String str) {
  18. //字符串转化为字符数组
  19. char[] array = str.toCharArray();
  20. //使用set结合,LinkedHashSet有顺序,不重复
  21. Set<Character> set=new LinkedHashSet<Character>();
  22. //将数组中的字符(不重复)添加到set集合
  23. for (int i = 0; i < array.length; i++) {
  24. set.add(array[i]);
  25. }
  26. //把set集合转化为list集合
  27. List<Character> list=new ArrayList<Character>(set);
  28. for (int i = 0; i < list.size(); i++) {
  29. int count=0;//记录字符个数的变量
  30. for (int j = 0; j < array.length; j++) {
  31. if(list.get(i).equals(array[j])){//判断付过list中的字母与数组中的字母一样count就加1
  32. count++;
  33. }
  34. }
  35. System.out.print(list.get(i)+"("+count+")");//输出
  36. }
  37. }
  38. }

第二种方式(map集合):

  1. package itheima;
  2. import java.util.Iterator;
  3. import java.util.LinkedHashMap;
  4. import java.util.Map;
  5. import java.util.Map.Entry;
  6. public class Demo7 {
  7. public static void main(String[] args) {
  8. String str="abcdekka27qoA*&AAAq";
  9. //查询字符串中字母的个数的函数
  10. countStringNumber(str);
  11. }
  12. private static void countStringNumber(String str) {
  13. //转化为字符数组
  14. char[] c = str.toCharArray();
  15. // System.out.println(c);
  16. //使用map集合,LinkedHashMap有序的
  17. Map<Character, Integer> map=new LinkedHashMap<Character, Integer>();
  18. //遍历
  19. for (int i = 0; i < c.length; i++) {
  20. //如果集合中的key不包含c[i]就设置为1
  21. if(!map.keySet().contains(c[i])){
  22. map.put(c[i], 1);
  23. }else{//否 则就加1
  24. map.put(c[i], map.get(c[i])+1);
  25. }
  26. }
  27. //迭代集合
  28. Iterator<Map.Entry<Character, Integer>> it=map.entrySet().iterator();
  29. while(it.hasNext()){
  30. Entry<Character, Integer> entry = it.next();
  31. System.out.print(entry.getKey()+"("+entry.getValue()+")");
  32. }
  33. }
  34. }

运行结果:




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/67232
推荐阅读
相关标签
  

闽ICP备14008679号