急!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+"个");
}
} 展开
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+"个");
}
} 展开
1个回答
展开全部
修改一句代码就可以了
String shuru = sc.next();
修改成为
String shuru = sc.nextLine();
运行测试
请输入任意字符:
abc 123 de
字母有:5个
数字有:3个
空格有:2个
原因解释
//next()使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。所以你的输入如果有空空格,那么空格后面的输入就没有读入进来
//nextLine()每次读入一行,无论你中间是否有空格, 都是读取一行
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询