一、计算一个字符串中字符个数
1、使用Scanner获取用户输入字符串
2、创建Map结合,key是字符,value是字符的个数
3、遍历字符串,获取每一字符
4、使用获取到的字符,去Map集合判断key是否存在
key存在:
通过字符(key),获取value(字符个数)
value++;
put(key,value)把新的valud存储到Map集合中
Key不存在
put(key,1)
5、遍历Map集合,打印输出结果
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
public class Example07 {
public static void main(String[] args) {
methodContains();
System.out.println("=================================");
methodGet();
}
/**
* 采用get(键)获取值,如果值为null,表示该字符在HashMap集合中不存在
*/
private static void methodGet() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
HashMap<Character,Integer> mp = new HashMap<>();
//将字符串切换为字符数组
char[] chars = str.toCharArray();
for (char aChar : chars) {
if (mp.get(aChar) == null){
mp.put(aChar,1);
}
else{
Integer it = mp.get(aChar);
it++;
mp.put(aChar,it);
}
}
Set<Character> set = mp.keySet();
for (Character key : set) {
Integer value = mp.get(key);
System.out.println(key + " >> " + value);
}
}
/**
* 才用containsKey(字符)来判断HashMap中是否存在该字符
*/
private static void methodContains() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str = sc.next();
HashMap<Character,Integer> mp = new HashMap<>();
char[] chars = str.toCharArray();
for (char aChar : chars) {
if(mp.containsKey(aChar)){
Integer value = mp.get(aChar);
value++;
mp.put(aChar,value);
}
else{
mp.put(aChar,1);
}
}
//输出
Set<Character> key = mp.keySet();
for (Character ch : key) {
Integer integer = mp.get(ch);
System.out.println(ch + " >> " + integer);
}
}
}
输出:
请输入一个字符串:
fsdfsafsgeheyffsdfasfhdhdggs你好
你 >> 1
a >> 2
s >> 6
d >> 4
e >> 2
f >> 7
g >> 3
h >> 3
y >> 1
好 >> 1