【程序7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用正则表达式
import java.util.Scanner;
import java.util.regex.Pattern;
public class Counting {
public static void counting(String str) {
// char[] c = str.toCharArray();
int abcCount = 0;// 英文字母个数
int spaceCount = 0;// 空格个数
int numCount = 0;// 数字个数
int otherCount = 0;// 其他字符个数
Pattern p1 = Pattern.compile("^[a-zA-Z]+$"); // 验证字母
Pattern p2 = Pattern.compile("^[0-9]+$"); //验证数字
Pattern p3 = Pattern.compile("\\s+"); //验证空格
String s = null;
for(int i=0; i<str.length(); i++ ){
s = str.substring(i,i+1);
if(p1.matcher(s).matches()){
abcCount++;
}else if(p2.matcher(s).matches()){
numCount++;
}else if(p3.matcher(s).matches()){
spaceCount++;
}else{
otherCount++;
}
}
System.out.println("英文字母个数" + abcCount);
System.out.println("空格个数" + spaceCount);
System.out.println("数字个数" + numCount);
System.out.println("其他个数" + otherCount);
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
counting(s.nextLine());
}
}
输入:
gmgljrt4t4uerttmr;f rgerjg rg-rg gr
结果为:
英文字母个数28
空格个数3
数字个数2
其他个数2