Parece ser que el tamaño de mi matriz 2D, EncryptedArr
¿no recibir actualización dentro del encryptData
método.
Este método está destinado a cifrar una cadena (dado dentro del método principal) en una matriz de enteros. Con el fin de ver si los bucles están en realidad introduce datos en el arreglo correctamente, necesito el tamaño de la matriz para que coincida con los datos que entran en ella.
static void encryptData(String toEncrypt)
{
stringLength = toEncrypt.length()
encryptedArr = new int[stringLength][stringLength]
for (rowIndex = 0; rowIndex <= stringLength; rowIndex++)
{
for (columnIndex = 0; columnIndex < encryptedArr[rowIndex].length;
columnIndex++)
{
while (indexOfString <= stringLength)
{
charToEncrypt = toEncrypt.charAt(indexOfString)
charValue = charToEncrypt;
encryptedArr[rowIndex][columnIndex] += charValue;
indexOfString++;
}
}
}
}
public static void main(String[] args)
{
String thing = "1";
encryptData(thing);
System.out.println("Here is the array: "+ encryptedArr);
}
charAt
está causando un error de "Cadena Índice fuera de los límites" que creo que es debido al tamaño de la matriz no tener actualizada para que coincida con el tamaño de la cadena que se está encriptada. El principal método se supone que debe imprimir el conjunto en su totalidad. Tanto EncryptData
y métodos principales están arriba. ¿Por qué es el código actualizando el tamaño de la matriz no está trabajando, y qué se puede hacer para solucionarlo?
for (rowIndex = 0; rowIndex <= stringLength; rowIndex++){ //here
for (columnIndex = 0; columnIndex < encryptedArr[rowIndex].length;columnIndex++){
while (indexOfString <= stringLength){
charToEncrypt = toEncrypt.charAt(indexOfString)
charValue = charToEncrypt;
encryptedArr[rowIndex][columnIndex] += charValue;
indexOfString++;
}
}
}
En su primer ciclo for que tiene condición de establecimiento repetición a menor o igual a StringLength así que cuando el rowIndex se hace igual a StringLength la llamada al encryptedArr le dará un error debido a que el mayor índice de matriz es siempre 1 menos que el tamaño de la matriz.