题目描述:
统计一行字符串中的英文字母个数、空格个数、数字个数、其他字符个数
输入格式:
通过键盘输入一行字符(任意字符)
输出格式:
统计一行字符串中的英文字母个数、空格个数、数字个数、其他字符个数
输入样例:
rwrwewre2345asdJSJQI%^&(& *&sdf YY( 2342-k'
输出样例:
字母个数:22
数字个数:8
空格个数:5
其他字符个数:10
答案:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int math = 0;
int space = 0;
int english = 0;
int other = 0;
//注意要用nextLine() next()输入并不支持空格!
String str = sc.nextLine();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c>='0'&&c<='9'){
math++;
}else if(c>='a'&&c<='z' || c>='A' && c<='Z'){
english++;
}else if(c==' '){
space++;
}else{
other++;
}
}
System.out.println("字母个数:"+english);
System.out.println("数字个数:"+math);
System.out.println("空格个数:"+space);
System.out.println("其他字符个数:"+other);
}
}
解析:
nextline(),和其他输入方法是有区别的,可以混用,但会比较麻烦,因为nextLine会吃掉前面输入方法的空格,
这一点需要注意!!!