一、要求
通过键盘输入一个字符串,统计其中每一个字符出现的次数
二、思路
1.使用Scanner获取用户输入的字符串 2.创建Map集合,key是字符串中的字符,value是字符的个数 3.将字符串转化为字符数组,通过增强for循环获取每一个字符 4.使用获取到的字符,去Map集合判断key(该字符)是否存在 存在: 通过字符(key),获取value(字符个数) value++ put(key,value)把新的value存储到Map集合中 不存在: put(key,1) 5.遍历Map集合,输出结果
三、实现代码
package StringPractice;
//要求:通过键盘输入一个字符串,统计出输入字符串中每一个字符出现的次数
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
public class Demo02String {
public static void main(String[] args) {
Scanner one = new Scanner(System.in);
String input = one.next(); //通过Scanner获取输入的字符串
HashMap<Character, Integer> mapset = new HashMap<>(); //创建一个Hashmap集合,用来存储字符及对应个数
for (char c : input.toCharArray()) { //先将字符串通过toCharArray()方法转化为字符数组,再通过增强for遍历数组中的每一个字符
if(mapset.containsKey(c)){ //判断Hashmap集合中是否已存在该字符
Integer value = mapset.get(c);
value++; //如果已经存在,将该字符对应的value值取出并加1
mapset.put(c,value); //将该字符与+1后的value值重新加到Hashmap集合中,这一步就是在对已存在的字符进行+1计数
}
else {
mapset.put(c,1);} //如果Hashmap集合中不存在该字符,将其加入,并设置value值为1
}
System.out.println(mapset); //直接输出Hashmap集合
Set<Character> keyset = mapset.keySet(); //遍历Hashmap集合并输出,只是为了练习
for (Character key : keyset) {
Integer value = mapset.get(key);
System.out.println(key+"="+value);
}
}
}