Как решить это исключение: Исключение в потоке "основной" java.lang.ArrayIndexOutOfBoundsException - PullRequest
0 голосов
/ 15 декабря 2010

Я получил это исключение после запуска кода, я не знаю, в чем проблема !!

программа сначала создает массив int, затем строковый массив такой же длины, что и int, затем берет каждый индекс в v и преобразует его в двоичный файл и добавляет нули, если цифры меньше 4, затем сохраняет его в строковом индексе после манипулирования строковый массив он передает его методу Called toBinaryInteger, который возвращает массив int, метод toBinaryInteger создает массив длины st.length * 4, который должен быть равен 32, затем берет каждую переменную из st и берет каждую ее цифру и сохраняет ее в массиве 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 Ответ

2 голосов
/ 15 декабря 2010

Я скомпилировал твой код.Получившаяся ошибка сказала мне, что проблема, по-видимому, заключается в следующей строке:

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

Возможно, вы хотели напечатать result[k] вместо этого?

...