题目:输入一行字符,分别统计出其中文、英文字母、空格、数字和其它字符的个数。
package test;
import java.util.Scanner;
public class Pratice1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int chinese=0;//汉字字符个数
int english = 0;//英文字符个数
int blank = 0;//空格字符个数
int number = 0;//数字字符个数
int other = 0;//其他字符个数
char[] ch = null;//定义字符数组
Scanner scanner = new Scanner(System.in);
System.out.println("请随便输入一串字符:");
String str = scanner.nextLine();//从控制台输入字符串
ch = str.toCharArray();//将字符串转换为字符数组
for (int i = 0; i < ch.length; ++i) {//遍历字符数组
if (String.valueOf(ch[i]).matches("[\u4e00-\u9fa5]")) {//汉字字符判断
chinese++;
} else if ((ch[i] >= 'a' && ch[i] <= 'z') || ch[i] > 'A' && ch[i] <= 'Z') {//英文字符判断
english++;
} else if (ch[i] == ' ') {//空格字符判读
blank++;
} else if(Character.isDigit(ch[i])==true){
number++;
}else {//定义字符
other++;
}
}
System.out.println("汉字个数: " + chinese);
System.out.println("英文字母个数: " + english);
System.out.println("空格个数: " + blank);
System.out.println("数字个数: " + number);
System.out.println("其他字符个数:" + other);
}
}
输出:
请随便输入一串字符:
魑魅魍魉dgsfjhdfg87932*/ 天下风云出我辈 69/HelloWorld
汉字个数: 11
英文字母个数: 19
空格个数: 3
数字个数: 7
其他字符个数:3