输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数:
package xiaocheshi.com.ftl;
import java.util.Scanner;
public class Count {
public static void main(String[] args) {
// TODO Auto-generated method stub
//题目:输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
Scanner scanner=new Scanner(System.in);
System.out.println("请输入一个字符串:");
String str=scanner.nextLine();
Count count =new Count();
System.out.println(str.length());
count.count(str);
scanner.close();
}
//输入一行字符,分别统计出其英文字母、空格、数字和其它字符的个数。
public void count(String str) {
/*
* 思路:
* 将得到的字符串进行拆分,拆分为一个个字符,对一个个字符进行遍历
* 设置三个变量用来储存字母、数字以及其他字符的数量
* 根据字母、数字以及其他字符的ASC码不同来判断该字符是字母、数字还是其他字符
* 字母65~90,97~122 数字48~57 空格 32
*/
//先拆分字符串
char[] chars = str.toCharArray();
//设置三个变量用来储存字母、数字以及其他字符的数量
int a=0;//字母的个数
int b=0;//空格的个数
int c=0;//数字的个数
int d=0;//其他字符的个数
//遍历得到的字符数组
for (char ch : chars) {
if (ch>=65&&ch<=90||ch>=97&&ch<=122) {
a++;
} else if (ch==32) {
b++;
}else if (ch>=48&&ch<=57) {
c++;
}else {
d++;
}
}
System.out.println("该字符串有"+a+"个字母!");
System.out.println("该字符串有"+b+"个空格!");
System.out.println("该字符串有"+c+"个数字!");
System.out.println("该字符串有"+d+"个其他字符!");
}
}
控制台打印结果: