Sou novo na área de Programação, estou tentando fazer uma criptografia, o código ainda não está completo, mas fica aparecendo um erro: java.lang.StringIndexOutOfBoundsException: , poderiam me informar o que está de errado?

package criptografia;
import javax.swing.*;
public class Criptografia {
public static void main(String[] args) {

    int op = Integer.parseInt(JOptionPane.showInputDialog("O que Deseja:\n [1] - Números -> Palavras\n [2] - Palavras -> Números"));
    
    switch(op){
        case 1:
            
            int tamanhoLinha = Integer.parseInt(JOptionPane.showInputDialog("Digite o tamanho da Linha:"));
            int tamanhoColuna = Integer.parseInt(JOptionPane.showInputDialog("Digite o tamanho da Coluna:"));
            
            String linha[] = new String[tamanhoLinha];
            String coluna[] = new String[tamanhoColuna];
            
            String palavra[]= new String[tamanhoLinha * tamanhoColuna];
            
            
            
            for(int c = 0;c < tamanhoLinha * tamanhoColuna;c++){
                
                String line = JOptionPane.showInputDialog("Digite a "+(c + 1)+"º Linha");
                String colune = JOptionPane.showInputDialog("Digite a "+(c + 1)+"º Coluna");
                
                char trLine = line.charAt(c);
                char trColune = colune.charAt(c);
                
                    for(int j = 0;j < 5;j++){
                        if(trLine == '0' && trColune == '0'){
                            palavra[c] = " ";
                        }else if(trLine == '1'&& trColune == '1'){
                            palavra[c] = "Z";
                        }else if(trLine == '1' && trColune == '2'){
                            palavra[c] = "Y";
                        }else if(trLine == '1' && trColune == '3'){
                            palavra[c] = "X";
                        }else if(trLine == '1' && trColune == '4'){
                            palavra[c] = "V";
                        }else if(trLine == '1' && trColune == '5'){
                            palavra[c] = "U";
                        }
                    }
                System.out.print(palavra[c]);
                
            }
            
            
        break;
    }
}

}

todo vetor tem um tamanho. Você está tentando acessar posições que ultrapassam o tamanho máximo deste vetor.

Ah, obrigado moço por me ajudar e a responder, consegui identificar o problema, muito obg.

Vetores ainda são um pouco confusos para mim.

Acredite, todos que encaram isso pela primeira vez têm essa sensação.
Com o tempo, porém, você acaba entendendo e consegue ver que é tranquilo.

1 curtida