Como faço para resolver java.lang.indexoutofboundsexception?

Parece que você está tentando acessar um elemento da matriz que não existe em um determinado índice.

public static void main (String [] args) { matriz int [] = {12,22,34,77,5}; for (int i = 0; i if (matriz [5] == 22) {// enquanto o tamanho da matriz é 4. System.out.println (i); } } }

e você está tentando acessar a matriz [5], como esse índice da matriz não existe, então ele lançará Java.lang.IndexOutOfBoundsException.

Portanto, adicione elementos até esse índice e tente buscar o elemento da matriz desejado ou verifique se o elemento da matriz existe nesse índice e, em seguida, busque o elemento da matriz.

public static void main (String [] args) { matriz int [] = {12,22,34,77,5}; for (int i = 0; i if (matriz [i] == 22) { System.out.println (i); } }}

Este é um dos erros mais comuns que ocorrem ao trabalhar com matrizes e índices.

Suponha que você tenha uma matriz de tamanho 5 e chame a matriz [5] e receberá esse erro, já que na matriz java começa em 0.

Dessa forma, talvez exista um caso em que você esteja procurando um valor, mas que não esteja no limite, ou seja, 0 a n-1 (onde n é o tamanho do seu array)

PS se você estiver apenas iterando os valores na matriz, use o loop for aprimorado.

Por exemplo. para (int i: arrayName) {

System.out.print (i);

}

Benefício: Java gerenciará automaticamente os índices da matriz para você. Você apenas senta e relaxa.

A exceção IndexOutOfBound significa que você está tentando acessar e número de índice de matriz que não existe. Vamos ver este exemplo

int arr [3];

A instrução acima cria uma matriz de três números inteiros. O primeiro número inteiro tem um local de índice de 0, segundo de 1 e terceiro de 2.

arr [0] = 67; // grava no primeiro inteiro

arr [1] = 56; // grava no segundo inteiro

arr [2] = 62; // grava no terceiro inteiro

Agora usamos todos os números inteiros e se tentarmos isso:

arr [3] = 23; // A exceção IndexOutOfBound será gerada porque não há índice '3'.

Eu acho que você está usando incorretamente em um loop em que a condição está definida para acessar o número de índice ilegal.

Talvez você esteja tentando

i <= 3;

E você deve usar

eu <3