写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及女朋友的名字。我热爱技术、热爱开源、热爱编程。
技术是开源的、知识是共享的。
这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣,可以关注我的动态,我们一起学习。
用知识改变命运,让我们的家人过上更好的生活
。
相关文章
点此查看 【算法系列】 博客文章
有关统计一个字符串中各个字符的个数是求职面试以及大学生竞赛常考的内容,这篇博文给出了两种实现方式,供大家参考!
例如给定字符串 "helloworld" ,求出每个字符出现的次数
第一种方式:利用集合的方式
1.创建一个map容器,存储字符串中的字符以及字符出现的次数
2.遍历字符串,获取每一个字符,并将字符存到集合中
3.在存入集合的过程中要进行判断,如果集合中的key等于null,就将这个字符作为key,value为1进行存储;如果集合中包含这个key,则 value ++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27public class StringTotal { public static void main(String[] args) { System.out.print("输入字符串:"); String str = new Scanner(System.in).nextLine(); if (str == null || "".equals(str.trim)) { System.out.println("字符串不能为空!"); return; } else { // 创建一个map HashMap<Character, Integer> map = new HashMap<>(); // 遍历字符串 for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); // 取字符对应的个数 Integer count = map.get(c); if (count == null) { map.put(c, 1); } else { map.put(c, count + 1); } } System.out.println(map); } } }
代码执行结果:
1
2
3输入字符串:helloworld {r=1, d=1, e=1, w=1, h=1, l=3, o=2}
第二种方式: 利用String 的方法
1.获取字符串第一个位置的字符
2.调用String的valueOf() 方法将获取的字符转化成字符串
3.调用String的replaceAll() 方法将字符串中与第2步得到的字符一样的全部替换为空,得到一个新的字符串
4.利用新的字符串长度减去原有字符串的长度,这个长度就是字符串字符的个数
5.将新的字符串赋值给原有的字符串,进行下一次循环
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20public class StringTotal1 { public static void main(String[] args) { System.out.print("输入字符串:"); String str = new Scanner(System.in).nextLine(); while (str.length() > 0) { // 获取字符串第一个位置的字符 c char c = str.charAt(0); // 将获取的字符转换成字符串 s String s = String.valueOf(c); // 将原来字符串中的字符串 s 全部替换为空,得到一个新的字符串 String strNew = str.replaceAll(s, ""); // 得到字符串中字符个数 int count = str.length() - strNew.length(); str = strNew; System.out.println(s+" 出现了 "+count+"次"); } } }
代码执行结果:
1
2
3
4
5
6
7
8
9输入字符串:helloworld h 出现了 1次 e 出现了 1次 l 出现了 3次 o 出现了 2次 w 出现了 1次 r 出现了 1次 d 出现了 1次
上一篇 经典算法(6)斐波拉契数列、兔子繁殖、跳台阶算法
下一篇 算法(8)利用循环法和辗转相除法求 最大公约数和最小公倍数
最后
以上就是包容铃铛最近收集整理的关于算法(7)统计一个字符串中每个字符出现的次数的全部内容,更多相关算法(7)统计一个字符串中每个字符出现内容请搜索靠谱客的其他文章。
发表评论 取消回复