主要用正则表达式在完成对汉字,数字,英文数量的验证。
import java.util.Scanner;
/*
* 统计汉字,数字,英文,other
* */
public class Test {
public static int count(String text) {
// 正则,这两个unicode值正好是Unicode表中的汉字的头和尾。"[]"代表里边的值出现一个就可以,后边的“+”代表至少出现1次,合起来即至少匹配一个汉字。
String Reg = "^[\u4e00-\u9fa5]{1}+";
int result = 0;
for (int i = 0; i < text.length(); i++) {
String b = Character.toString(text.charAt(i));
if (b.matches(Reg))
result++;
}
return result;
} public static void main(String[] args) {
System.out.println("请输入:");
Scanner scanner = new Scanner(System.in);
String str=scanner.nextLine(); int length = str.length();
int nLen = length - str.replaceAll("\\d", "").length();//由两部分组成的,\转义符 加\d是一个正字表达式,标识所有数字即0-9
int eLen = length - str.replaceAll("[a-zA-Z]", "").length();//标志所有英文 int cLen = count(str);
int oLen=length - nLen - eLen - cLen;//其他 System.out.println("Number:" + nLen);
System.out.println("English:" + eLen);
System.out.println("Chinese:" + cLen);
System.out.println("Other:"+oLen);
}
}
主要理解正则表达式。
输入一系列的字符,打印结果如下: