如何解决此异常:线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException

时间:2010-12-14 22:52:16

标签: java loops methods bin

我运行代码后得到此异常我不知道是什么问题!!

程序最初创建int数组,然后创建与int相同长度的字符串数组,然后取v中的每个索引并将其转换为二进制,如果小于4的数字则添加零,然后在操作之后将其存储在字符串索引中字符串数组它传递给方法调用toBinaryInteger返回int数组toBinaryInteger方法创建一个长度为st.length * 4的数组,该数组应为32然后从st获取每个entery并获取它的每个数字并将其存储在p数组中然后程序打印结果,但此时会显示异常。我希望我能很好地解释这个项目。任何想法都有帮助。

嗨,每个身体问题都解决了问题是我打印了错误的数组,结果我打印了st特殊的tankx用于好的调试器

 public static void main(String [] arg) 
    {   
        int [] v={0,11,12,13,14,15,7,8};
        String [] st=new String [v.length];
        String x="";
        for(int i=0;i<st.length;i++)
        {
            x=Integer.toBinaryString(v[i]);
            while (x.length()<4)    // add zeroed to left if needed to fit in 4 bits
                x="0"+x;
            st[i]=x;


        }
        int [] result=toBinaryInteger(st);
        int count=0;
        for(int k=0;k<result.length;k++)
        {
            System.out.print(st[k]);
            if(count==4){
                System.out.print("  ");
                count=0;
            }

        }



    }   






public static int [] toBinaryInteger(String [] s)
    { 
        int [] p=new int [s.length*4];
        for(int i=0;i<s.length;i++)
            {
            for(int j=0; j<s[i].length();j++){
                p[i*4+j]=Integer.parseInt(s[i].substring(j,j+1));//create array of 32 lenght    

                }
            }
            return p;   
    }

1 个答案:

答案 0 :(得分:2)

我编译了你的代码。由此产生的错误告诉我问题似乎是这一行:

System.out.print(st[k]);

也许您打算在那里打印result[k]

相关问题