Map<Character, Integer> map = new HashMap<Character, Integer>(); String str="dflkasdfkjhsadlkjhskljhjkshdfkj"; for(int i = 0; i < str.length(); i ++) { char c = str.charAt(i); if(!map.containsKey(c)) map.put(c, 0); else map.put(c, map.get(c) + 1); }
Set<Character> set = map.keySet(); for(Character c : set) { System.out.println(c + " : " + map.get(c)); } 结果: f : 2 d : 3 s : 3 a : 1 l : 2 j : 4 k : 5 h : 3
String str="dflkasdfkjhsadlkjhskljhjkshdfkj"; char[] chars = str.toCharArray(); Arrays.sort(chars); int max = 0; int count = 0; char maxchar = 0; char oldchar = 0 ; for(int i = 0 ;i <= chars.length;i++){
if(i == 0 || i == chars.length || oldchar != chars[i] ){ max = max > count?max:count; maxchar = max > count?maxchar:oldchar; if(i == chars.length){ break; } oldchar = chars[i]; count = 0; } count++;
Map<Character, Integer> map = new HashMap<Character, Integer>(); String str="dflkasdfkjhsadlkjhskljhjkshdfkj"; for(int i = 0; i < str.length(); i ++) { char c = str.charAt(i); if(!map.containsKey(c)) map.put(c, 1);//这个地方刚才写错了,应该是1 else map.put(c, map.get(c) + 1); }
Set<Character> set = map.keySet(); for(Character c : set) { System.out.println(c + " : " + map.get(c)); } 结果: f : 3 d : 4 s : 4 a : 2 l : 3 j : 5 k : 6 h : 4
for (int i = str.length(); i-- > 0; count[str.charAt(i)]++);
int maxIndex = 0;
for (int i = 1; i < count.length; i++) {
if (count[i] > count[maxIndex]) {
maxIndex = i;
}
}
System.out.println((char) maxIndex);
Bag(commons-collections里的数据结构),放字母,同时里面也有出现次数的信息。
我也想到要用hsah表 但是就是不知道怎么遍历,才能得到所要的结果
Map<Character, Integer> map = new HashMap<Character, Integer>();
String str="dflkasdfkjhsadlkjhskljhjkshdfkj";
for(int i = 0; i < str.length(); i ++)
{
char c = str.charAt(i);
if(!map.containsKey(c))
map.put(c, 0);
else
map.put(c, map.get(c) + 1);
}
Set<Character> set = map.keySet();
for(Character c : set)
{
System.out.println(c + " : " + map.get(c));
}
结果:
f : 2
d : 3
s : 3
a : 1
l : 2
j : 4
k : 5
h : 3
char[] chars = str.toCharArray();
Arrays.sort(chars);
int max = 0;
int count = 0;
char maxchar = 0;
char oldchar = 0 ;
for(int i = 0 ;i <= chars.length;i++){
if(i == 0 || i == chars.length || oldchar != chars[i] ){
max = max > count?max:count;
maxchar = max > count?maxchar:oldchar;
if(i == chars.length){
break;
}
oldchar = chars[i];
count = 0;
}
count++;
}
System.out.println(maxchar+":"+max);
这个似乎很多人问过了 刚写了个代码
Map<Character, Integer> map = new HashMap<Character, Integer>();
String str="dflkasdfkjhsadlkjhskljhjkshdfkj";
for(int i = 0; i < str.length(); i ++)
{
char c = str.charAt(i);
if(!map.containsKey(c))
map.put(c, 1);//这个地方刚才写错了,应该是1
else
map.put(c, map.get(c) + 1);
}
Set<Character> set = map.keySet();
for(Character c : set)
{
System.out.println(c + " : " + map.get(c));
}
结果:
f : 3
d : 4
s : 4
a : 2
l : 3
j : 5
k : 6
h : 4
map.put(c,0);else 这句有错。改成
map.put(c,1);else