您的位置:首页 > 编程语言 > Java开发

输入一行字符,统计其中字母、数字、空格、其它字符的数量,并输出到控制台

2017-12-12 01:39 711 查看
输入一行字符,统计其中字母、数字、空格、其它字符的数量,并输出到控制台

package String;

import java.util.Scanner;

public class numbersCount {

public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要统计的字符串:(按回车键结束输入)");
String str = sc.nextLine();
int letterCount=0,numberCount=0,spaceCount=0,otherCount=0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c<='z'&&c>='a'||c<='Z'&&c>='A') {
letterCount++;
}else if(c<='9'&&c>='0'){
numberCount++;
}else if(c==' '){
spaceCount++;
}else{
otherCount++;
}

}
System.out.println("字母有"+letterCount+"个");
System.out.println("数字有"+numberCount+"个");
System.out.println("空格有"+spaceCount+"个");
System.out.println("其它有"+otherCount+"个");

}
}


以上是正确的,下面我贴出一组错误代码,有兴趣的分析下以下代码错在了哪里,为什么错了

package String;

import java.util.Scanner;

public class numbersCount {

public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要统计的字符串:(按回车键结束输入)");
String str = sc.nextLine();
int letterCount=0,numberCount=0,spaceCount=0,otherCount=0;
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if(c<='z'&&c>='a'||c<='Z'&&c>='A') letterCount++;
if(c<='9'&&c>='0') numberCount++;
if(c==' '){
spaceCount++;
}else{
otherCount++;
}

}
System.out.println("字母有"+letterCount+"个");
System.out.println("数字有"+numberCount+"个");
System.out.println("空格有"+spaceCount+"个");
System.out.println("其它有"+otherCount+"个");

}
}


答:错在了otherCount,因为上述代码是把除空格外的所有字符都进行统计,包括了字母和数字,而题目要求是不要字母和数字统计到其它里面的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 算法
相关文章推荐