需求:
.键盘录入一个字符串,要求统计字符串中的每个字符出现的次数
.举例aaaaabbbbcccdde 在控制台输出a(5)b(4)c(3)d(2)e(1)
思路:
1.键盘录入一个字符串
2.创建hashmap集合,键是character 值是integer
3.遍历字符串,得到每一个字符串
4.拿得到的字符串作为键到hashmap集合中去找对应的值,看起返回值
.如果返回值为null,说明该字符在hashmap集合中不存在,就把该字符作为键,1作为值储存
.如果返回值不为null,说明该字符串在hashmap中存在,把该1值加1,然后重新该字符串和对应的值
5.如果遍历hashmap集合,得到键和值,按照要求进行拼接,
6.输出结果
package 统计字符串中每个字符出现的次数;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import Hashmap存储学生对象并遍历升级版.student;
public class Stringdemo {
/*
需求:
.键盘录入一个字符串,要求统计字符串中的每个字符出现的次数
.举例aaaaabbbbcccdde 在控制台输出a(5)b(4)c(3)d(2)e(1)
思路:
1.键盘录入一个字符串
2.创建hashmap集合,键是character 值是integer
3.遍历字符串,得到每一个字符串
4.拿得到的字符串作为键到hashmap集合中去找对应的值,看起返回值
.如果返回值为null,说明该字符在hashmap集合中不存在,就把该字符作为键,1作为值储存
.如果返回值不为null,说明该字符串在hashmap中存在,把该1值加1,然后重新该字符串和对应的值
5.如果遍历hashmap集合,得到键和值,按照要求进行拼接,
6.输出结果
*/
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc=new Scanner(System.in);
System.out.println("请输入字符串");
String s=sc.nextLine();
//创建集合
Map<Character,Integer> m = new HashMap<Character,Integer>();
//遍历字符串
for (int i = 0; i < s.length(); i++) {
char key = s.charAt(i);
//拿得到的字符串作为键到hashmap集合中去找对应的值,看起返回值
Integer value = m.get(key);
if(value==null) {
//.如果返回值为null,说明该字符在hashmap集合中不存在,就把该字符作为键,1作为值储存
m.put(key, 1);
}else {
//.如果返回值不为null,说明该字符串在hashmap中存在,把该值加1,然后重新该字符串和对应的值
value++;
m.put(key, value);
}
}
//5.如果遍历hashmap集合,得到键和值,按照要求进行拼接,
StringBuilder sb = new StringBuilder();
Set<Character> keySet= m.keySet();
for (Character key : keySet) {
Integer value = m.get(key);
sb.append(key).append("(").append(value).append(")");
}
String result = sb.toString();
System.out.println(result);
}
}