Может кто-то может помочь мне со следующей ошибкой. Исключение в потоке главного java.lang.arrayindexoutofboundsexception: 3 в RowTrans.encrypt (Rowtrans.java:33) в RowTrans.main (Rowtrans.java: 7)Исключение из потока main ArrayIndexOutOfBoundsException
В моей программе я хочу, чтобы получить текст. Поместите его в матрицу с 5 столбцами и определите строки в соответствии с длиной текста. Затем я хочу изменить позицию столбца и строки так, чтобы строка получала позицию столбцов и столбец строки. И когда строка не содержит 5 значений, я хочу добавить символ Z в пустые пространства. Может ли кто-нибудь помочь мне в этой ошибке, пожалуйста.
Вот мой код
import java.util.Scanner;
public class ColTrans {
public static void main(String[] args)
{
String ori = "This is my horse";
String enc = encrypt(ori);
System.out.println(enc);
// String dec = decrypt(enc);
// System.out.println(dec);
}
static String encrypt(String text)
{
String result = "";
text = text.toUpperCase();
int length = text.length();
int rows = length/5;
char[][] b = new char[rows][5];
char[][] c = new char[5][rows];
char[] d = new char[length];
if ((length % 5) != 0)
rows = rows + 1;
int k = 0;
for (int i = 0; i < rows; i++)
for (int j = 0; j < 5; j++)
{
if (k > length)
b[i][j] = 'Z';
else
{
d[k] = text.charAt(k);
b[i][j] = d[k];
}
k++;
}
for (int i = 0; i < 5; i++)
for (int j = 0; j < rows; j++)
{
c[i][j] = b[j][i];
result = result + c[i][j];
}
return result;
}
}
Если текст длиннее 5 символов, как вы собираетесь поместить его в массив из 5 столбцов? Вы проигнорируете остальное? – Sam
Я хочу, чтобы первые 5 символов были в первой строке, а вторая пятая (6-10) была во второй строке и так далее. Я неправильно сформулировал это неправильно, может быть, вы мне поможете? –
Можете ли вы привести пример ввода/вывода? – Sam