java编程错误提示:java.lang.StringIndexOutOfBoundsException: String index outofrange

2024-10-30 22:21:30
推荐回答(4个)
回答1:

您好:

根据您编写的代码及报错异常信息,是因为aaa.charAt(i); 方法中i的值超过了字符串的长度导致的,在for循环中,条件应该是i

具体代码如下:

供参考,希望对你有帮助!

回答2:

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);

////mychange
//aaa=din.readLine();
BufferedReader br = new BufferedReader(new InputStreamReader(din));
aaa=br.readLine();
////mychange end

System.out.println(aaa);
System.out.println(aaa.length());

////mychange
//for(i=0;i<=aaa.length();i++){
for(i=0;i ////mychange end
System.out.println("i="+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();}

}

}

我用的是1.6的编译器,所以中间改了一段代码。
还有就是那for处
出现异常的原因就是你的字符串数组下标溢出了。

回答3:

for(i=0;i<=aaa.length();i++){

这一句吧,改成i什么原因 学程序的人都懂得。

回答4:

for (i = 0; i < aaa.length(); i++) { //不要加"=",你的数组没有那么长,会造成
角标越界