先看如下的代码- /*题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
- 1 从键盘输入一行字符,记得关流
- 2 转化为字符串
- 3 将字符串转为字符数组
- 4 因汉字只能作为字符串处理,定义一个字符串,每个值都和字符数组同
- */
- import java.util.Scanner;
- class Progs07
- {
- public static void main(String[] args)
- {
- Scanner in=new Scanner(System.in);
- String str=in.nextLine();//将一行字符转化为字符串
- in.close();
- getCount(str);
- }
- private static void getCount(String ss)
- {
- char[] char_array=ss.toCharArray();//将字符串转为字符数组
- String[] string_array=new String[char_array.length];
- //汉字只能作为字符串处理
- int countChinese=0;
- int countLetter=0;
- int countNum=0;
- int countSpace=0;
- int countOther=0;
- String E1="[\u4e00-\u9fa5]";//汉字
- String E2="[a-zA-Z]";//字母
- String E3="[0-9]";//数字
- String E4="\\s";//空格
- for(int i=0;i<char_array.length;i++)
- //{}
- string_array[i]=String.valueOf(char_array[i]);
- for(String s:string_array)
- {
- if(s.matches(E1))
- countChinese++;
- else if(s.matches(E2))
- countLetter++;
- else if(s.matches(E3))
- countNum++;
- else if(s.matches(E4))
- countSpace++;
- else
- countOther++;
- }
-
- System.out.println("输入的汉字个数:"+countChinese);
- System.out.println("输入的字母个数:"+countLetter);
- System.out.println("输入的数字个数:"+countNum);
- System.out.println("输入的空格个数:"+countSpace);
- System.out.println("输入的其它字符个数:"+countOther);
- }
- }
复制代码 为什么要说汉字只能作为字符串处理呢,难道不能作为字符处理么 |