此题提示有问题,你输入完字符串,回车以后就完成输入,While循环判断条件应该是无论如何也要进入循环,\n应该是换行,所以提示有问题,我给你看一下我的代码:
import java.util.Scanner;
public class test{
public static void main(String[] args) {
/**wordCount是存储字母个数,spaceCount是存储空格个数,
numberCount是存储数字个数,otherCount存储其它字符个数,temp存放的是字符的ASCII码*/
int wordCount=0,spaceCount=0,numberCount=0,otherCount=0,i=0,temp;
System.out.print("请输入一个字符串:");
//输入字符串,不能使用new Scanner(System.in).next()这种输入方式,否则有问题
String str = new Scanner(System.in).nextLine();
while (1==1) {
//循环截取字符串,一个一个截取,然后将字符转换成ASCII码
temp = (int)str.substring(i, i+1).charAt(0);
i++;
//统计字母个数
if ((temp >= 65 && temp <= 90)||(temp >= 97 && temp <= 122)) {
wordCount++;
//统计数字个数
}else if(temp >= 48 && temp <= 57){
numberCount++;
//统计空格个数
}else if (temp == 32) {
spaceCount++;
//统计其它字符个数
}else{
otherCount++;
}
//当统计变量i等于字符串长度的时候跳出循环
if(i==str.length()){
break;
}
}
//输出统计结果
System.out.println("你刚才输入的字符串中,字母有"+wordCount+"个,"
+"空格有"+spaceCount+"个,数字有"+numberCount
+"个,其它字符有"+otherCount+"个。");
}
}