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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 莞漂族 中级黑马   /  2015-3-13 22:34  /  2490 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

36黑马币
有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。

最佳答案

查看完整内容

哈哈,其实包含中文字符、英文字符、数字字符原来是出题者放的烟雾弹。 String content = “中国aadf的111萨bbb菲的zz萨菲”; HashMap map = new HashMap(); for(int i=0;i

3 个回复

倒序浏览
哈哈,其实包含中文字符、英文字符、数字字符原来是出题者放的烟雾弹。

String content = “中国aadf的111萨bbb菲的zz萨菲”;

HashMap map = new HashMap();

for(int i=0;i<content.length;i++)

{

      char c = content.charAt(i);

      Integer num = map.get(c);

      if(num == null)

            num = 1;

      else

            num = num + 1;

      map.put(c,num);

}

for(Map.EntrySet entry : map)

{

      system.out.println(entry.getkey() + “:” + entry.getValue());

}

估计是当初面试的那个学员表述不清楚,问题很可能是:

如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。

int engishCount;

int chineseCount;

int digitCount;

for(int i=0;i<str.length;i++)

{

      char ch = str.charAt(i);

      if(ch>=’0’ && ch<=’9’)

      {

            digitCount++

      }

      else if((ch>=’a’ && ch<=’z’) || (ch>=’A’ && ch<=’Z’))

      {

            engishCount++;

      }

      else

      {

            chineseCount++;

      }

}

System.out.println(……………);

回复 使用道具 举报
稍等,我会
回复 使用道具 举报
谢谢  学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马