为什么我这段代码求不出空格的个数啊?
int charnum=0,digitalnum=0,blanknum=0,othernum=0,i=0;
Scanner input=new Scanner(System.in);
System.out.printf("请输入一组字符和数字:");
String s=input.next();
char a[]=s.toCharArray();
while(i<a.length&&a[i]!='\n')
{
if(Character.isDigit(a[i]))
digitalnum++;
else if(Character.isSpaceChar(a[i]))
blanknum++;
else if(Character.isLetter(a[i]))
charnum++;
else
othernum++;
i++;
}
System.out.println("这组字符中字母的个数为:"+charnum);
System.out.println("这组字符中数字的个数为:"+digitalnum);
System.out.println("这组字符中空格的个数为:"+blanknum);
System.out.println("这组字符中其他字符的个数为:"+othernum);
}
}
[解决办法]
String s=input.next();
改为:
String s=input.nextLine();
否则空格都被当作单词间隔了。