输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数
/*
题目:输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
*/
public class StatisticalCharacters {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in).useDelimiter("\n");
System.out.println("请输入字符串");
String s = scanner.next();
int a = 0;//小写字母
String aStr = "";
int b = 0;//大写字母
String bStr = "";
int c = 0;//数字
String cStr = "";
int d = 0;//特殊字符
String dStr = "";
int e = 0;//空格
for (int i=0;i<s.length();i++){
if (s.charAt(i)>= 97 && s.charAt(i) <= 122 ){//小写字母
a++;
aStr = aStr + s.charAt(i);
}else if (s.charAt(i)>=65 && s.charAt(i) <=90){//大写字母
b++;
bStr = bStr + s.charAt(i);
}else if (s.charAt(i) >‘0‘ && s.charAt(i) <‘9‘){//数字
c++;
cStr = cStr + s.charAt(i);
}else if (s.charAt(i) == 32) {//空格
e=e+1;
} else {// 特殊字符
d++;
dStr = dStr + s.charAt(i);
}
}
System.out.println("小写字母的个数为"+a+"个");
System.out.println("存在小写字母如下:" + aStr);
System.out.println("大写字母的个数为"+b+"个");
System.out.println("存在大写字母如下:" + bStr);
System.out.println("数字字符的个数为"+c+"个");
System.out.println("存在数字字符如下:" + cStr);
System.out.println("特殊字符的个数为"+d+"个");
System.out.println("存在特殊字符如下:" + dStr);
System.out.println("空格字符的个数为"+e+"个");
}
}
***********************************
Scanner.useDelimiter( )方法
由于Scanner对象将首先跳过输入流开头的所有空白分隔符,然后对输入流中的信息进行检查,直到遇到空白分隔符为止;因此输入数据:this is a test;空白后面的字符:is a test不会显示输出来
这时就需要用Scanner.useDelimiter( )方法,可以将分隔符号修改为"回车",或者其他字符。
//useDelimiter("\n"); //“\n”换行符(回车)作为输入的分隔符
Scanner scan = new Scanner(System.in).useDelimiter("\n");
System.out.print("请输入:");
String year = scan.next();
System.out.printf("%s",year);