输入一行字符,统计其中字母、数字、空格、其它字符的数量,并输出到控制台
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,因为上述代码是把除空格外的所有字符都进行统计,包括了字母和数字,而题目要求是不要字母和数字统计到其它里面的。