最近我做了一个问题,我发现是否可以在字符串中找到一个字符。我想知道如何使用 Java 计算字符串中每个字母的出现次数,然后按字母顺序打印?例如,如果字符串是“alabama”,那么函数将返回“a:4, b:1, l:1, m:1”
问问题
1934 次
2 回答
2
就像是:
TreeMap<Character, Integer> map = new TreeMap<Character, Integer>();
for (char c: str.toCharArray())
{
Integer i = map.get(c);
if (i == null)
i = 0;
map.put(c, i+1);
}
System.out.println(map);
如果数字仅限于“a”到“z”或 ASCII 范围 (0-255),则将其存储在数组中会更有效(代码具有相同的想法)。
于 2013-02-21T19:40:01.283 回答
0
另一个使用地图的例子。
String myString = "alabama";
NavigableMap<Character, Integer> myMap = new TreeMap<Character, Integer>();
for(char c : myString.toCharArray()) {
if(myMap.get(c)==null){
myMap.put(c, 1);
}else {
myMap.put(c, myMap.get(c)+1);
}
}
for (Map.Entry<Character, Integer> entry : myMap.entrySet()) {
System.out.print(entry.getKey() + ":" + entry.getValue() );
if(!myMap.lastKey().equals(entry.getKey())){
System.out.print(", ");
}
}
或者...
更新
String str = "alabama";
Map<Character, Integer> auxMap = new TreeMap<Character, Integer>();
for(char c : str.toCharArray()) {
if(auxMap.get(c)==null){
auxMap.put(c, 1);
}else {
auxMap.put(c, auxMap.get(c)+1);
}
}
System.out.println(auxMap);
于 2013-02-21T20:24:16.420 回答