您的位置:首页 > 其它

计算重复字符个数

2016-04-13 20:25 387 查看
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();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: