2015-04-17 4 views
0

У меня есть текстовый файл, который необходимо зашифровать. Весь текст разбит на патроны 6 символов. Из текста, который я взял, после деления на блоки из 6 символов, я получаю 45 групп, каждая группа из 6 символов.String [] принимает значения null

Я беру одну группу за раз и выполняю процесс шифрования.

for (int i = 0; i < group; i++) { 
     s[i] = input.substring(j, j + block_size); 
     ASCIIMatrx asc = new ASCIIMatrx(); 
     asc.text(s, k1, a1, b1, n); 
     j += block_size; 
    } 

Для первой итерации он принимает первые шесть символов, но для остальных он принимает нулевые значения. Я понятия не имею, где я пропал без вести.

ASCIIMatrx - метод, с помощью которого я передаю подстроку вместе с ключами, необходимыми для шифрования.

+2

Возможно, это связано с тем, что он инициализирован большим размером, чем вы его заполняете, вместо этого используйте 'ArrayList'. – Maroun

+1

Начать отладку: каково значение 'input'? Какова ценность подстроки? Что такое 'j'? Используйте записи журнала или отладчик. –

+0

Где я могу использовать ArrayList? Я не понимаю. – Jilna

ответ

1

Для ссылок значение по умолчанию: null. Я думаю, что вы выделяете больше элементов, чем вам действительно нужно в массиве, они будут заполнены значениями null. Смотрите JLS:

для всех типов эталонных (§4.3), значение по умолчанию null

Вместо того, чтобы иметь массив фиксированного размера, используйте ArrayList вместо:

ArrayList<MyType> arr = new ArrayList<>(); 
... 
arr.add(myType); 

Обратите внимание, что оператор алмаза доступен с Java 7, если вы используете более старую версию, вы должны
ArrayList<MyType> arr = new ArrayList<MyType>();

+0

Невозможно найти работу со списками .. grrr !! – Jilna

Смежные вопросы