急!java作业:从键盘输入一个任意长度的字符串,请分别统计其字母a的个数,字母z的个数以及数字的个数。

我写的代码老是不行,只要输入空格就不行了·····不知道为何,求高手帮忙看看;、importjava.util.Scanner;publicclassJava_2015_... 我写的代码老是不行,只要输入空格就不行了·····不知道为何,求高手帮忙看看;、
import java.util.Scanner;
public class Java_2015_12_06 {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int word=0; //定义字母为word;
int number=0; //定义数字为number;
int space=0; //定义空格为space;
System.out.println("请输入任意字符:");
String shuru = sc.next();
char[] chars = shuru.toCharArray(); //判断每个字符;

for(int i = 0;i<chars.length;i++){ //length 长度;
if(chars[i]>=65&&chars[i]<=90||(chars[i]>=97&&chars[i]<=122)){
//字母的范围 大写Z-A 和小写 z-a;
word++;
}
else if((chars[i]>=48&&chars[i]<=57)){ //s数字的范围;
number++;

}
else if(chars[i]==' '){
space++; //其他,空格;
}
}
System.out.println("字母有:"+word+"个");
System.out.println("数字有:"+number+"个");
System.out.println("空格有:"+space+"个");
}

}
展开
 我来答
雪飞潇潇
推荐于2017-09-29 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:869万
展开全部

修改一句代码就可以了

String shuru = sc.next();

修改成为

String shuru = sc.nextLine();

运行测试

请输入任意字符:
abc 123 de
字母有:5个
数字有:3个
空格有:2个

原因解释

//next()使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。所以你的输入如果有空空格,那么空格后面的输入就没有读入进来

//nextLine()每次读入一行,无论你中间是否有空格, 都是读取一行

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式