首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

急请高手帮忙,字符的有关问题

2012-01-11 
急急急,请高手帮忙,字符的问题intas0String[]strinewString[5000]int[]numnewint[5000]for(inti0i

急急急,请高手帮忙,字符的问题

              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等于多少???

热点排行