回答
只是有一个每个字符和他们的计数的映射。您可以使用String#toCharArray()
获得String
的字符数组,并使用enhanced for loop循环访问它。在每次迭代中,从映射中获取计数,如果没有,则设置它,然后用1递增并放回地图。非常简单。
这里有一个基本的开球例如:
String string = "I am really busy right now";
Map<Character, Integer> characterCounts = new HashMap<Character, Integer>();
for (char character : string.toCharArray()) {
Integer characterCount = characterCounts.get(character);
if (characterCount == null) {
characterCount = 0;
}
characterCounts.put(character, characterCount + 1);
}
要了解更多有关地图,检查Sun tutorial on the subject。
你的评论,这是“一个项目”,但但它是一个典型的家庭作业的问题,因为它是非常基本的和盖在一个体面的Java书/教程的第一章。如果你是Java新手,我建议你通过Sun Trails Covering the Basics。
一个字符不再是一个字符,不幸的是。 – 2010-05-31 00:36:04
作业吗?如果不知道,我会尽力回答。
您的问题背后的逻辑是
- 去trought列表中的一个角色在时间
- 计数字符:因为可能的字符(不包括Unicode)的仅仅是256,你可以有256
int
数组并在那里计数:通过这种方式,您不需要搜索正确的计数器,只需增加正确的索引即可。
不,我只需要它为我的项目 – terence6 2010-05-31 00:00:53
我不知道您的具体需求,但它似乎要算不管发生的情况下,也可能忽略的字符,如空格等,所以,你可能想是这样的:
String initial = "I am really busy right now";
String cleaned = initial.replaceAll("\\s", "") //remove all whitespace characters
.toLowerCase(); // lower all characters
Map<Character, Integer> map = new HashMap<Character, Integer>();
for (char character : cleaned.toCharArray()) {
Integer count = map.get(character);
count = (count!=null) ? count + 1 : 1;
map.put(character, count);
}
for (Map.Entry<Character, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
调整正则表达式以满足您的确切要求(跳过标点符号等)。
- 1. Android:获取其编号的字符串
- 2. 从字符串获取编号
- 3. 从括号,括号和连字符的字符串中获取子字符串
- 4. 从符号读取字符串以从字符串符号
- 5. 从字符串中读取字符或从字符串中获取字符
- 6. 如何从涉及其他字符的字符串中获取int?
- 7. 获取字符串中包含的所有字符串
- 8. 在JavaScript中获取字符串的所有子字符串
- 9. 获取字符串中所有子字符串的出现
- 10. REGEX获取字符串中的所有数字,即使其他字符在
- 11. 获取strings.xml中的所有字符串
- 12. 从字符串获取子字符串__
- 13. BATCH编程 - 从字符串中获取编号
- 14. AS3:从指定数组中的字符串中获取所有子字符串
- 15. 当字符串有符号时从字符串获取数据类型
- 16. 从字符串中提取符号
- 17. 从其他字符串获取字符串匹配()
- 18. 从字符串获取数字和html实体编号除外
- 19. 获取从字符串中的所有字,直到某个词
- 20. 如何从字符串中获取所有数字
- 21. 在sql中获取字符串的所有唯一字符
- 22. 从字符串中删除所有非字字符(标点符号)
- 23. PHP - 获取所有字符的字符
- 24. Debug.WriteLine及其字符编码
- 25. 从字符串中提取所有出现的特定字符
- 26. 从字符串获取n个字符
- 27. 从字符串获取特定字符
- 28. 正则表达式获取字符串中的所有号码?
- 29. 在字符串中获取字符串
- 30. 返回字符串中的第一个字符,其编号为
定义“字符”。它是一个32位的Unicode代码点吗?它可以有所作为。 – 2010-05-31 00:08:30
这可以很好地作为一个非常简单的代码kata :) – 2010-05-31 01:32:03