一、题目描述
输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数。
数据范围:输入的字符串长度满足 1 \le n \le 1000 \1≤n≤1000 。
二、输入描述
输入一行字符串,可以有空格。
三、输出描述
统计其中英文字符,空格字符,数字字符,其他字符的个数。
四、解题思路
- 读取输入的一行字符串 s;
- 初始化变量 letters、spaces、digits 和 others 分别表示英文字母、空格、数字和其他字符的个数,初始值都为 0;
- 使用循环遍历字符串 s的每个字符:
- 如果字符是英文字母,使用 Character.isLetter© 判断,将 letters 自增 1;
- 如果字符是数字,使用 Character.isDigit© 判断,将 digits 自增 1;
- 如果字符是空格,使用 Character.isSpaceChar© 判断,将 spaces 自增 1;
- 如果字符不是英文字母、数字或空格,则将 others 自增 1;
- 循环结束后,输出 letters、spaces、digits 和 others 的值,分别表示英文字母、空格、数字和其他字符的个数;
五、Java算法源码
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String s = scanner.nextLine();
//统计其中英文字符,空格字符,数字字符,其他字符的个数
int letters = 0;
int spaces= 0;
int digits = 0;
int others = 0;
int len = s.length();
for(int i = 0; i < len; i++){
char c = s.charAt(i);
if(Character.isLetter(c)){
letters++;
}else if(Character.isDigit(c)){
digits++;
}else if(Character.isSpaceChar(c)){
spaces++;
}else{
others++;
}
}
// 统计其中英文字符,空格字符,数字字符,其他字符的个数
System.out.println(letters);
System.out.println(spaces);
System.out.println(digits);
System.out.println(others);
}
}
六、效果展示
🏆下一篇:华为OD机试真题 Java 实现【组合出合法最小数】【2023Q1 200分】,附详细解题思路
🏆本文收录于,华为OD机试2023(Java)
本专栏包含了最新最全的2023年华为OD机试真题,有详细的分析和Java解答。已帮助1000+同学顺利通过OD机考。专栏会持续更新,每天在线答疑。