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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴凯 中级黑马   /  2013-7-3 11:12  /  1214 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杜光 于 2013-7-5 07:38 编辑

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
import java.util.*;
public class Demo
{  
public static void main(String[] args)
{
int digital = 0;
int character = 0;
int other = 0;
int blank = 0;  
     
char[] ch = null;  
     
Scanner sc = new Scanner(System.in);
     
String s = sc.nextLine();
     
ch = s.toCharArray();
     
for(int i=0; i<ch.length; i++)
{
      
if(ch >= '0' && ch <= '9')
{  
      
digital ++;  
      
}
else if((ch >= 'a' && ch <= 'z') || ch > 'A' && ch <= 'Z')
{
      
character ++;
      
}
else if(ch == ' ')
{
      
blank ++;  
      
}
else
{
      
other ++;
      
}
      
}  
     
System.out.println("数字个数: " + digital);  
     
System.out.println("英文字母个数: " + character);
     
System.out.println("空格个数: " + blank);
     
System.out.println("其他字符个数:" + other );
}
}  

点评

以后发代码的话请用代码工具,不然太乱了  发表于 2013-7-3 12:08

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 每天提问并回答问题,是对知识的复习和积累.

查看全部评分

7 个回复

倒序浏览
else if((ch >= 'a' && ch <= 'z') || ch > 'A' && ch <= 'Z') //    ch > 'A' && ch <= 'Z'最好也加上括号  
回复 使用道具 举报
这个错误太明显了,把循环内的ch全部替换成ch[i]就解决问题了
回复 使用道具 举报
嘿嘿,我改的,不知道符合不符合你的要求
  1. <p>package mypakage;</p><p>//输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数
  2. import java.io.BufferedReader;
  3. import java.io.IOException;
  4. import java.io.InputStreamReader;
  5. import java.util.*;
  6. public class Demo
  7. {  
  8. public static void main(String args[]) throws IOException
  9. {
  10.   String s;
  11. int digital = 0;
  12. int character = 0;
  13. int other = 0;
  14. int blank = 0;  
  15. //byte[] b=new byte[100];
  16. //创建字节写入流
  17. InputStreamReader isr=new InputStreamReader(System.in);//与输入设备相关联
  18. //创建缓冲区
  19. BufferedReader br=new BufferedReader(isr);
  20. //用s存入读取到的数据
  21. s=br.readLine();
  22. // br.close();
  23.    //首先创建字符串
  24. //String str="3sf ad4a,ff,w5rw fwfw78fs";
  25. //将字符串转换为字符数组

  26. char[] ch =s.toCharArray();  
  27.       
  28. //Scanner sc = new Scanner(System.in);
  29.       
  30. //String s = sc.nextLine();
  31.       
  32. //ch = s.toCharArray();
  33.       
  34. for(int i=0; i<ch.length;i++)
  35. {
  36.       
  37.   if(ch[i]>= '0' && ch[i] <= '9')
  38.     {  
  39.         
  40.      digital++;  
  41.       
  42.     }
  43. else if((ch[i]>= 'a' && ch[i]<= 'z') || ch[i] > 'A' && ch[i] <= 'Z')
  44. {
  45.         
  46. character ++;
  47.       
  48. }
  49. else if(ch[i] == ' ')
  50. {
  51.         
  52. blank ++;  
  53.       
  54. }
  55. else
  56. {
  57.         
  58. other ++;
  59.       
  60. }
  61.       
  62. }  
  63.       
  64. System.out.println("数字个数: " + digital);  
  65.       
  66. System.out.println("英文字母个数: " + character);
  67.       
  68. System.out.println("空格个数: " + blank);
  69.       
  70. System.out.println("其他字符个数:" + other );
  71. }
  72. }  
  73. </p><p> </p>
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1 好久不见。。呵呵

查看全部评分

回复 使用道具 举报
小石头39910 发表于 2013-7-3 13:50
嘿嘿,我改的,不知道符合不符合你的要求

嘿嘿,我是真的好久没有上过论坛了
回复 使用道具 举报
本帖最后由 camml 于 2013-7-4 11:59 编辑

将后面代码的ch改为ch,改正前
  1. if(ch >= '0' && ch <= '9')
  2. {  
  3.       
  4. digital ++;  
  5.       
  6. }
  7. else if((ch >= 'a' && ch <= 'z') || ch > 'A' && ch <= 'Z')
  8. {
  9.       
  10. character ++;
  11.       
  12. }
  13. else if(ch == ' ')
  14. {
  15.       
  16. blank ++;  
  17.       
  18. }
复制代码
改正后
  1. if(ch[i] >= '0' && ch[i] <= '9')
  2. {  
  3.       
  4. digital ++;  
  5.       
  6. }
  7. else if((ch[i] >= 'a' && ch <= 'z') || ch[i] > 'A' && ch <= 'Z')
  8. {
  9.       
  10. character ++;
  11.       
  12. }
  13. else if(ch[i] == ' ')
  14. {
  15.       
  16. blank ++;  
  17.       
  18. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马