JAVA基础(004_Hash Table的使用之统计字符的出现次数)
来源:互联网 发布:企业网站域名怎么收费 编辑:程序博客网 时间:2024/05/16 04:50
问题:请计算任意字符串中的每一个字符的出现次数。
例如:在"Hello World"
字符串中,字符'H'
出现1
次,字符'W'
出现1
次,字符'd'
出现1
次,字符'e'
出现1
次,字符'l'
出现3
次,字符'o'
出现2
次,字符'r'
出现1
次,' '
出现1
次(空格出现1
次)。
解答:
1. 使用数组进行统计:
public class MainClass { public static void main(String[] args) { char[] str = "Hello World".toCharArray(); print(str); } public static void print(char[] str) { int[] freq = new int[256]; // 定义数组长度 for (int i = 0; i < str.length; i++) { freq[str[i]]++; // 关键代码 } for (int i = 0; i < 256; i++) { if (freq[i] > 0) { System.out.println("[" + (char) (i) + "]" + " = " + freq[i]); } } }}
2.使用Hash Table进行统计:
public class MainClass { public static void main(String[] args) { char[] str = "Hello World".toCharArray(); print(str); } public static void print(char[] str) { Map<Character, Integer> freq = new HashMap<Character, Integer>(); for (int i = 0; i < str.length; i++) { if (freq.containsKey(str[i])) { freq.put(str[i], freq.get(str[i]) + 1); } else { freq.put(str[i], 1); } } for (Map.Entry<Character, Integer> entry : freq.entrySet()) { System.out.println("[" + (char) (entry.getKey()) + "]" + " = " + entry.getValue()); } }}
总结:使用数组的方式适合统计单个字符,如果将这个问题转化为在一篇英文文章中统计每个英文单词出现的次数,那么使用数组的方式是行不通的,然而,使用Hash Table的方式就能解决这一衍生问题(本文没有提供这一变种问题的演示代码,自己动手,丰衣足食)。
0 0
- JAVA基础(004_Hash Table的使用之统计字符的出现次数)
- 统计出现字符的次数
- 统计字符出现的次数
- 统计字符出现的次数
- java统计字符串中的字符重复的次数和和出现次数 实例(输入字符串)
- java基础—统计一个字符串中各个字符出现的次数
- java基础练习-统计字符串中每个字符出现的次数
- java之统计字符串出现的次数(map)
- TreeMap的使用实例:统计字符出现次数
- HashMap和HashSet使用--统计字符出现的次数
- java统计字符串中各个字符的出现次数
- java语言_统计字符出现的次数
- Java,统计字符串中各字符出现的次数
- java:统计a字符在字符串中出现的次数
- Java面试题-统计字符串的字符出现次数
- java统计字符串中每个字符出现的次数
- java统计字符串中单个字符出现的次数
- 统计字符出现的次数和数字出现的次数
- 服务端数据库(MySQL)
- oracle学习查询总结
- Java(线程的生命周期及调度)
- ACM学习历程26——KMP算法
- android NDK开发之Hello NDK
- JAVA基础(004_Hash Table的使用之统计字符的出现次数)
- 拷贝构造函数的参数为什么必须使用引用类型
- 事件对象event
- 走进新的生活
- onmousewheel鼠标滚轮事件绑定的兼容性问题
- 一元多项式
- 软件工程师进阶:学会写各种开发、需求文档
- Linux——Cent-OS下Eclipse使用JDBC连接Oracle 11g
- 判断一段代码是由c编译还是c++编译?