统计字符串中的字符数量
思路
我们不仅要存字符还要存字符出现的次数,从这题目上来看需要用到两个数组或者两个List集合,一个存字符,一个存次数,虽然一样能实现我们的需求,但是效率不高,我们可以使用map集合的特性,利用键值对和不能包含相同的键的特性,用键来表示字符,用值来表示字符出现的次数。
代码部分
package Demo;
import java.util.*;
public class A {
public static void main(String[] args) {
System.out.println("请输入");
Scanner sc = new Scanner(System.in);
String str = sc.next();
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
//遍历字符串
for (int i = 0; i < str.length(); i++) {
// 把字每次字符赋给临时变量使用
char c = str.charAt(i);
// 判断获取的当前字符是否在map集合的键中存在
if (map.containsKey(c)) {
// 如果存在就在获取当前键所对应的值,在当前的键对应的值上面加1;
int count = map.get(c);
count++;
map.put(c, count);
} else {
// 如果不存在就直接存进map集合,并给值为1
map.put(c, 1);
}
}
// 循环输出map集合
for (Character key : map.keySet()) {
int b = map.get(key);
System.out.println("元素:" + key + "数量" + b);
}
}
}