import java.io.*;
public class question7 {
public static void main(String[] args) {
String aaa=null;
char ch;
int i;
int j=0,k=0,l=0,m=0;
try{
DataInputStream din=new DataInputStream(System.in);
aaa=din.readLine();
System.out.println(aaa);
System.out.print(aaa.length());
for(i=0;i<=aaa.length();i++){
ch=aaa.charAt(i);
if((ch>=65&&ch<=90)||(ch>=97&&ch<=122))
j++;
else if(ch==32)
k++;
else if(ch>=48&&ch<=57)
l++;
else m++;
}
System.out.println("英文字母个数为:"+j);
System.out.println("空格个数为:"+k);
System.out.println("数字个数为:"+l);
System.out.println("其他字符个数为:"+m);
}catch(IOException e){e.printStackTrace();}
}
}
您好:
根据您编写的代码及报错异常信息,是因为aaa.charAt(i); 方法中i的值超过了字符串的长度导致的,在for循环中,条件应该是i<aaa.length,没有 = 等号,for(i=0;i<=aaa.length();i++)
具体代码如下:
供参考,希望对你有帮助!