字符统计
题目简述:输入一行字符,分别统计出其中英文字母、小写英文字母数,大写英文字母数,空格、数字和其它字符的个数。
package com.company;
import java.util.Scanner;
public class Main{
public static void main(String[] args){
int egnum=0;//英文字母数
int bnum=0;//大写英文字母数
int snum=0;//小写英文字母数
int spacenum=0;//空格数
int num=0;//数字
int othernum=0;//其他
System.out.println("请输入字符串:");
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if(Character.isLetter(ch[i])){
egnum++;//英字字母
if(Character.isUpperCase(ch[i]) ){
bnum++;//大写字母
}else {
snum++;//小写字母
}
}else if(Character.isDigit(ch[i])){
num++;//数字
}else if(Character.isWhitespace(ch[i])){
spacenum++;//空格
}else
othernum++;//其他
}
System.out.println("英文字母有"+egnum+"个.其中大写字母有"+bnum+"个,小写字母有"+snum+"个");
System.out.println("数字有"+num+"个");
System.out.println("空格有"+spacenum+"个");
System.out.println("其他的有"+othernum+"个");
}
}
注:本题也可采取另一方式,具体代码如下:
public class Main {
public static void main(String[] args) {
int egnum=0;//英文字母数
int bnum=0;//大写英文字母数
int snum=0;//小写英文字母数
int spacenum=0;//空格数
int num=0;//数字
int othernum=0;//其他
System.out.println("请输入字符串:");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
char[] ch = s.toCharArray();
for(int i=0; i<ch.length; i++) {
if(ch[i] >= '0' && ch[i] <= '9') {
num ++;
} else if(ch[i] >= 'a' && ch[i] <= 'z'){
snum++;
}else if(ch[i] > 'A' && ch[i] <= 'Z'){
bnum++;
}
else if(ch[i] == ' ') {
spacenum ++;
} else {
othernum ++;
}
egnum=bnum+snum;
}
System.out.println("英文字母有"+egnum+"个.其中大写字母有"+bnum+"个,小写字母有"+snum+"个");
System.out.println("数字有"+num+"个");
System.out.println("空格有"+spacenum+"个");
System.out.println("其他的有"+othernum+"个");
}
}
结果如下:
请输入字符串:
cihCBEY 182371cbc&#*E@#&( bxayyg
英文字母有17个.其中大写字母有5个,小写字母有12个
数字有6个
空格有4个
其他的有7个