A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨晓燕 高级黑马   /  2013-7-12 12:10  /  1149 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

先看如下的代码
  1. /*题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
  2. 1 从键盘输入一行字符,记得关流
  3. 2 转化为字符串
  4. 3 将字符串转为字符数组
  5. 4 因汉字只能作为字符串处理,定义一个字符串,每个值都和字符数组同
  6. */
  7. import java.util.Scanner;
  8. class Progs07
  9. {
  10.         public static void main(String[] args)
  11.         {
  12.                 Scanner in=new Scanner(System.in);
  13.                 String str=in.nextLine();//将一行字符转化为字符串
  14.                 in.close();
  15.                 getCount(str);
  16.         }
  17.         private static void getCount(String ss)
  18.         {
  19.                 char[] char_array=ss.toCharArray();//将字符串转为字符数组
  20.                 String[] string_array=new String[char_array.length];
  21.                 //汉字只能作为字符串处理
  22.                 int countChinese=0;
  23.                 int countLetter=0;
  24.                 int countNum=0;
  25.                 int countSpace=0;
  26.                 int countOther=0;
  27.                 String E1="[\u4e00-\u9fa5]";//汉字
  28.                 String E2="[a-zA-Z]";//字母
  29.                 String E3="[0-9]";//数字
  30.                 String E4="\\s";//空格
  31.                 for(int i=0;i<char_array.length;i++)
  32.                 //{}
  33.                         string_array[i]=String.valueOf(char_array[i]);
  34.                 for(String s:string_array)
  35.                         {
  36.                         if(s.matches(E1))
  37.                                 countChinese++;
  38.                         else if(s.matches(E2))
  39.                                 countLetter++;
  40.                         else if(s.matches(E3))
  41.                                 countNum++;
  42.                         else if(s.matches(E4))
  43.                                 countSpace++;
  44.                         else
  45.                                 countOther++;
  46.                         }
  47.                
  48.                 System.out.println("输入的汉字个数:"+countChinese);
  49.                 System.out.println("输入的字母个数:"+countLetter);
  50.                 System.out.println("输入的数字个数:"+countNum);
  51.                 System.out.println("输入的空格个数:"+countSpace);
  52.                 System.out.println("输入的其它字符个数:"+countOther);

  53.         }
  54. }
复制代码
为什么要说汉字只能作为字符串处理呢,难道不能作为字符处理么

评分

参与人数 1技术分 +1 收起 理由
神之梦 + 1 神马都是浮云

查看全部评分

1 个回复

倒序浏览
unicode编译或者判断是汉字的时候特殊处理。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马