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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王震阳老师   /  2014-4-30 11:23  /  34711 人查看  /  452 人回复  /   2 人收藏 转载请遵从CC协议 禁止商业使用本文

又一题啊又一题!

答案.zip

692 Bytes, 阅读权限: 100, 下载次数: 2

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 继续努力

查看全部评分

回复 使用道具 举报

你的答案我已经审核,你可以再看看跟题意是否相符?你统计出的是各个字符的个数。
回复 使用道具 举报
先做这个最简单的吧,上传答案不会设置,折腾半天

count.rar

717 Bytes, 阅读权限: 150, 下载次数: 2

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  1. import java.util.Map;
  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.io.InputStreamReader;
  5. import java.io.BufferedReader;
  6. import java.io.IOException;
  7. /**
  8.         @classname:字符串相关参数统计类
  9.         @description:其实完成此题并不需要划分这么多函数,也不应该用到集合的知识。
  10.                                  但是我还是用了,因为我认为获得做题就是练习自己的技术并且每一个小题都应该当成是
  11.                                  一个大的软件做,所以我进行了一系列函数功能的划分,并且把学到的集合的知识用到了此处。
  12.                                  当然因为集合只能存储引用类型,所以也涉及到自动装箱拆箱的知识。
  13.                                  此程序完全基于EditPlus开发,无IDE工具使用。
  14.         @author:Tad http://weibo.com/weinabanta

  15. */
  16. public class Statistics
  17. {
  18.         /**
  19.                 主函数,统筹整个统计工作的进行。
  20.         */
  21.         public static void main(String[] args) throws IOException
  22.         {
  23.                 String inputLine = getString();
  24.                 Map<String,Integer> staResult = count(inputLine);
  25.                 printInfo(staResult);
  26.         }
  27.         /**
  28.                 从控制台读取字符串并返回
  29.                 @return 用户输入的字符串
  30.         */
  31.         private static String getString() throws IOException
  32.         {
  33.                 System.out.print("输入字符串:");
  34.                 BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  35.                 return br.readLine();
  36.         }
  37.         /**
  38.                 对字符串进行相应参数统计
  39.                 @param 需要统计的字符串
  40.                 @return 统计结果,存储在集合中
  41.         */
  42.         private static Map<String,Integer> count(String lineNeedToCount)
  43.         {               
  44.                 Integer lettersNum = 0;
  45.                 Integer spacesNum = 0;
  46.                 Integer numbersNum = 0;
  47.                 Integer othersNum = 0;
  48.                 char[] charArr = lineNeedToCount.toCharArray();
  49.                 for(int i = 0;i < charArr.length;i++)
  50.                 {
  51.                         if((charArr[i] >= 65 && charArr[i] <= 90)||(charArr[i] >= 97 && charArr[i] <= 122))
  52.                         {
  53.                                 lettersNum++;
  54.                         }
  55.                         else if(charArr[i] == 32)
  56.                         {
  57.                                 spacesNum++;
  58.                         }
  59.                         else if(charArr[i] >= 48 && charArr[i] <= 57)
  60.                         {
  61.                                 numbersNum++;
  62.                         }
  63.                         else
  64.                         {
  65.                                 othersNum++;
  66.                         }
  67.                 }
  68.                 Map<String,Integer> map = new HashMap<String,Integer>();
  69.                 map.put("    字符个数",lettersNum);
  70.                 map.put("    空格个数",spacesNum);
  71.                 map.put("    数字个数",numbersNum);
  72.                 map.put("    其它个数",othersNum);
  73.                 return map;
  74.         }
  75.         /**
  76.                 形式打印结果
  77.                 @param 需要打印的结果
  78.         */
  79.         private static void printInfo(Map<String,Integer> resultNeedToPrint)
  80.         {
  81.                 System.out.println("统计结果如下:");
  82.                 Iterator<String> keySet = resultNeedToPrint.keySet().iterator();
  83.                 while(keySet.hasNext())
  84.                 {
  85.                         String key = keySet.next();
  86.                         Integer val = resultNeedToPrint.get(key);
  87.                         System.out.println(key+" --- "+val);
  88.                 }
  89.         }
  90. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 继续努力

查看全部评分

回复 使用道具 举报
呃,为什么只有1啊,给点意见或是小小完善一下吧,又看不到其他人2分的完美答案
回复 使用道具 举报
来看看。。。。。。。。。。。
回复 使用道具 举报
王震阳 发表于 2014-4-30 23:04
有没有考虑过如果输入的是‘Tab’怎么统计?

如果输入是字符串‘Tab’,当然是字符个数是3,其他字符是2, 运行一下就可以得到结果了。如果在控制台按下Tab键当做输入字符的话,结果统计是把Tab键当做其他字符来计算。(不是当做多个空格统计的),能再加一分技术分不?:P
回复 使用道具 举报
先看看!!!!!!!!!!
回复 使用道具 举报
来看看,求问题
回复 使用道具 举报
kankanaknak
回复 使用道具 举报
看看 赚个技术分
回复 使用道具 举报
先看看问题再说,,,
回复 使用道具 举报
版主  记得给分哈   嘻嘻

tongji.tar.gz

259 Bytes, 阅读权限: 100, 下载次数: 1

统计字符

评分

参与人数 1技术分 +2 收起 理由
王震阳老师 + 2 赞一个!

查看全部评分

回复 使用道具 举报
看看,,,DVDVDVD发V
回复 使用道具 举报
kankan kankankan
回复 使用道具 举报
我试试
回复 使用道具 举报
搞定,看看吧

CountTest.rar

677 Bytes, 阅读权限: 100, 下载次数: 1

评分

参与人数 1技术分 +2 收起 理由
王震阳老师 + 2 赞一个!

查看全部评分

回复 使用道具 举报
  1. //题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
  2. import java.io.*;
  3. class  Test20
  4. {
  5.         public static void main(String[] args) throws IOException
  6.         {
  7.                 System.out.println("请输入数据,输入over可退出");
  8.                 show();
  9.         }
  10.         public static void show()throws IOException
  11.         {
  12.                 BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
  13.                
  14.                 String str = null;
  15.                 int num = 0;
  16.                 int abc = 0;
  17.                 int kong = 0;
  18.                 int other = 0;
  19.                 while ((str=bufr.readLine())!=null)
  20.                 {
  21.                         if ("over".equals(str))//输入over退出
  22.                         {
  23.                                 break;
  24.                         }
  25.                         char[] ch = str.toCharArray();
  26.                         for (int i=0;i<str.length();i++)
  27.                         {
  28.                                 if (Character.isLetter(ch[i]))//确定指定字符是否为字母
  29.                                 {
  30.                                         abc++;
  31.                                 }
  32.                                 else if (Character.isDigit(ch[i]))//确定指定字符是否为数字。
  33.                                 {
  34.                                         num++;
  35.                                 }
  36.                                 else if (Character.isSpaceChar(ch[i]))//确定指定字符是否为 Unicode 空白字符。
  37.                                 {
  38.                                         kong++;
  39.                                 }
  40.                                 else//   其他字符
  41.                                 {
  42.                                         other++;
  43.                                 }
  44.                         }
  45.                         System.out.println("数字个数"+num+"  字母个数"+abc+"  空格个数"+kong+"  其他字符个数"+other);
  46.                          num = 0;//清零
  47.                          abc = 0;
  48.                          kong = 0;
  49.                         other = 0;

  50.                 }
  51.                 bufr.close();
  52.         }
  53. }
复制代码
不知道可不可以通过呢?

评分

参与人数 1技术分 +1 收起 理由
王震阳老师 + 1 赞一个!

查看全部评分

回复 使用道具 举报
ς高眼光の目标 发表于 2014-5-1 04:12
不知道可不可以通过呢?

以后再回复获取技术分的代码贴记得将代码隐藏
回复 使用道具 举报
蛤蟆太康 发表于 2014-5-1 00:44
如果输入是字符串‘Tab’,当然是字符个数是3,其他字符是2, 运行一下就可以得到结果了。如果在控制台按 ...

我说的是按键”Tab"
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马