java中通过标志位或哈希表实现输出字符串中每个字符出现的个数
哈希表:
import java.util.HashMap;
import java.util.Map;
public class _哈希表判断每个字符出现的次数 {
public static void main(String[] args) {
String s = "!*abbcccddddfffffgggggghhhhhhhppppppppp122333444455555666666777777788888888999999999";
HashMap<Character, Integer> list = new HashMap<>();
if (s.length()>0){
for (int i = 0;i<s.length();i++){
char c = s.charAt(i);
if (list.containsKey(c)){
list.put(c,list.get(c)+1);
}else {
list.put(c,1);
}
}
for (Map.Entry<Character,Integer> str:list.entrySet()){
System.out.println(str);
}
}else {
System.out.println("空字符串");
}
}
}
标志位:
public class _标志位统计每个字符出现个数 {
public static void main(String[] args) {
String str = "abbcccddddccccc122333444455555/**---&&$$$";
int index = 0;
int count = 0;
boolean[] b = new boolean[str.length()];//默认全为false
for (index = 0;index<str.length();index++){
count = 0;//重新计数
if (!b[index]){
for (int i = index;i<str.length();i++){
if (str.charAt(index) == str.charAt(i)){
b[i] = true;
count++;
}
}
System.out.println(count+"个"+str.charAt(index)+" ");
}
}
}
}