题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
package cn.ls.lanqiao;
import java.util.Scanner;
public class Test7 {
public static void main(String[] args) {
int daXie = 0;
int xiaoXie = 0;
int kongGe = 0;
int number = 0;
int other = 0;
System.out.println("请输入字符串:");
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
/*
* 方法一,利用ASCII码去解决
* for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 65 && c <= 90)
daXie++;
else if (c >= 97 && c <= 122)
xiaoXie++;
else if (c >= 48 && c <= 57)
number++;
else if (c == 32)
kongGe++;
else
other++;
}*/
//方法二,利用Character的方法去解决,先把字符串转化为char数组
char[] ls = str.toCharArray();
for(int i=0;i<ls.length;i++){
if(Character.isUpperCase(ls[i])){
daXie++;
}else if(Character.isLowerCase(ls[i])) {
xiaoXie++;
}else if(Character.isDigit(ls[i])){
number++;
}else if(Character.isSpaceChar(ls[i])){
kongGe++;
}else{
other++;
}
}
System.out.println(str + "中大写字母的个数为" + daXie + "个");
System.out.println(str + "中小写字母的个数为" + xiaoXie + "个");
System.out.println(str + "中数字的个数为" + number + "个");
System.out.println(str + "中空格的个数为" + kongGe + "个");
System.out.println(str + "中其他字符的个数为" + other + "个");
}
}