计算重复字符个数

来源:互联网 发布:淘宝预售不能合并付款 编辑:程序博客网 时间:2024/05/22 01:48
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;




public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String input = null;
while (sc.hasNext()) {
input = sc.nextLine();
}
sc.close();
String del = deleteNotCharacter(input);
char[] s = del.toCharArray();
Map<Character, Integer> map = new HashMap<Character, Integer>();
// 循环需要统计的字符串
for (int i = 0; i < s.length; i++) {
// 遍历字符串中的每个字符
char c = s[i];
// 查找map中是否已经包含字符串的字符
if (map.containsKey(c)) {
// 如果已经包含则数量+1
int val = map.get(c) + 1;
// 将+1后的值存放回map
map.put(c, val);
} else {
// 如果未包含则初始化为1
map.put(c, 1);
}


}


Iterator<Entry<Character, Integer>> it = map.entrySet().iterator();
while (it.hasNext()) {
Entry<Character, Integer> entry = it.next();
System.out.print(entry.getKey().toString() + entry.getValue());
}
}


private static String deleteNotCharacter(String s) {
char[] cs = s.toCharArray();
StringBuilder sb = new StringBuilder();
for (char c : cs) {
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
sb.append(c);
}
return sb.toString();
}
}
0 0