0

运行代码后出现此异常,我不知道是什么问题!

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

嗨,每个人的问题都解决 了,问题是我打印了错误的数组 insted 结果我为好的调试器打印了 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;   
    }
4

1 回答 1

2

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

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

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

于 2010-12-14T22:56:54.167 回答