计算重复字符个数
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();
}
}
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();
}
}
相关文章推荐
- android实战项目五做一个倒计时的button
- Android 布局深度优化(减少布局层次)
- 【BZOJ-3437】小P的牧场 DP + 斜率优化
- ScrollView中嵌套ListView
- centos7 cannot find a valid baseurl for repo base
- Linux Is Not Matrix——zabbix监控mysql
- uva 11129 An antiarithmetic permutation
- ffmpeg一键编译
- 小译UnityAPI-Update,FixedUpdate ,LateUpdate
- 树状数组
- NYOJ 三个水杯
- JQuery 之事件中的 ----- hover 与 onmouseover 、onmouseout 联系
- 用InstallShield 打包工具 打 Win32 程序 (depends.exe 用看程序都依赖了哪些dll)
- css3 用border写三角形
- 208. Implement Trie (Prefix Tree)
- HUD 1142详解带翻译 (以前看了好多大神的算法看不懂,学了之后终于看懂了,献给和我一样刚入门的菜鸟)
- lightoj 1186 - Incredible Chess Nim博弈
- 浮点数的等值判断
- 10.为项目组搭建开发测试环境介绍
- 用于并行计算的多线程数据结构,第 2 部分: 设计不使用互斥锁的并发数据结构