Map练习:键盘任意输入一个字符串,要求输出每个大写字母和其出现次数, 每个小写字母和其出现次数, 每个汉字和其出现次数.

先解决键盘输入,这里用nextLine来解决输入中有空格的问题
将键盘输入的字符串拆成char型数组
Map集合有KV对,Key是不可重复的,所以我们将数组存入Key中,次数存入Value中
遍历数组,通过判断当前数组元素在Map中没有,若没有则count变为1;若有则count获取该数组元素在Map中的个数count,然后count自增,再将Map中的count覆盖
要求不查询符号的个数,再将判断没有数组元素中的符号来舍弃掉符号

		System.out.println("输入任意字符串:");
		String strs = new Scanner(System.in).nextLine();
		char[] str = strs.toCharArray();
		Map map = new LinkedHashMap();
		int count = 0;
		for (int i = 0; i < str.length; i++) {
			if (str[i] != ' ' && str[i] != '!' && str[i] != ',' && str[i] != '.' && str[i] != '?') {
				if (map.get(str[i]) == null) {
					count = 1;
					map.put(str[i], count);
				} else {
					count = map.get(str[i]);
					count++;
					map.put(str[i], count);
				}
			}
		}
		Set keys = map.keySet();
		for (Character key : keys) {
			System.out.println(key + ":" + map.get(key));
		}

你可能感兴趣的:(java基础)