急急急,请高手帮忙,字符的问题
int as=0;
String[] stri = new String[5000];
int[] num = new int[5000];
for(int i=0;i <=(int)newFile.length()-1;i++)
{
if(cha[i]!= '@ ')
{
for(int j=i+1;j <=(int)newFile.length()-1;j++)
{
if(j+2 <=(int)newFile.length()-1&&cha[j]!= '@ '&&cha[j+1]!= '@ '&&cha[j+2]!= '@ '&&cha[i]==cha[j]&&cha[i+1]==cha[j+1]&&cha[i+2]==cha[j+2])
{ //把字符转换成字符串
char[] ch1 = {cha[i],cha[i+1],ch[i+2]};
String str1 = new String(ch1);
for(int bs=0;bs <=as;bs++)
{if(stri[bs]==str1)
num[bs]+=1; }
stri[as+1]=str1;
num[as+1]=1;
}
Exception in thread "main " java.lang.ArrayIndexOutOfBoundsException: 5000
at s.Zhuanyouci. <init> (Zhuanyouci.java:102)
at s.Zhuanyouci.main(Zhuanyouci.java:125
[解决办法]
在你程序的的s.Zhuangyouci的init方法的102行出发生数组越界,你定义的数组长度是5000,但是你在这一行的引用却超过了5000的范围。
[解决办法]
for(int i=0;i <=(int)newFile.length()-1;i++)
最好不要用 <=来控制循环.容易出现你这样的问题.
你改成for(int i=0;i <(int)newFile.length();i++)
再改一下.后面的代码.
试试吧.
俺也不是高手!
[解决办法]
j==(int)newFile.length()-1时,
j+2等于多少???