键盘录入一个字符串,统计该字符串中各个字符的个数
1.通过for循环来判断。
代码如下:
import java.util.Scanner;
public class StringDemoEnd01 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你想输入的字符串:");
String s = scanner.next();
int a = 0;
int b = 0;
int c = 0;
int d = 0;
for(int i =0;i<s.length();i++) {
//获取字符串的字符
char ch= s.charAt(i);
if(ch>='a' && ch<='z') {
a++;
}else if(ch>='A' && ch<='Z') {
b++;
}else if(ch>='0' && ch<='9') {
c++;
}else {
d++;
}
}
System.out.println("你所输入的字符串中小写字母的给数为"+a+"个");
System.out.println("你所输入的字符串中大写字母的给数为"+b+"个");
System.out.println("你所输入的字符串中数字字符的给数为"+c+"个");
System.out.println("你所输入的字符串中特殊字符的给数为"+d+"个");
}
}
注:在使用Scanner类做键盘输入时,一定要确保已导入了java.util.Scanner;包。
2.使用Map集合
分析:
- 获取一个字符串对象
- 创建一个Map集合,键代表字符,值代表次数。
- 遍历字符串得到每个字符。
- 判断Map中是否有该键。
- 如果没有,第一次出现,存储次数为1;如果有,则说明已经出现过,获取到对应的值进行++,再次存储。
代码如下:
public static void main(String[] args) {
//1:创建一个集合 存储 字符 以及其出现的次数
HashMap<Character, Integer> map = new HashMap<Character, Integer>();
//友情提示
System.out.println("请录入一个字符串:");
String line = new Scanner(System.in).nextLine();
//2:遍历字符串
for (int i = 0; i < line.length(); i++) {
char c = line.charAt(i);
//判断 该字符 是否在键集中
if (!map.containsKey(c)) {//说明这个字符没有出现过
//那就是第一次
map.put(c, 1);
} else {
//先获取之前的次数
Integer count = map.get(c);
//++count;
//再次存入 更新
map.put(c, ++count);
}
}
System.out.println(map);
}