Java - java.lang.ArrayIndexOutOfBoundsException: 0 con hilos

 
Vista:
sin imagen de perfil
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

java.lang.ArrayIndexOutOfBoundsException: 0 con hilos

Publicado por Sergio (19 intervenciones) el 11/11/2016 20:35:08
Hola Chikos,

Tengo este problema con hilos que no veo como solucionar. Tengo una funcion que me genera palabras aleatorias de longitud variable, si le paso el valor con int funciona, pero si lo hago a string, falla. el codigo de ambas, de buena a mala son:

1
2
3
4
int PalabrasHilo=0;
private String generarPalabra() {
	return "Palabra de este hilo " +(++PalabrasHilo);
}

***************************************************************************************************
***************************************************************************************************
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
private String generarPalabra(int PalabrasHilo) {
	int palabras = PalabrasHilo;
	int FILAS = palabras;
	int COLUMNAS = palabras;
    int i, j = 0;
    int[][] A = new int[FILAS][COLUMNAS]; //Creo la matriz de elementos
    for (i = 0; i < FILAS; i++) { //Pinto las líneas
        for (j = 0; j < COLUMNAS; j++) { //Pinto las columnas
 
			/*Muestra solmante las letras del abecedario*/
			int longitud = (122 - 97 + 1) + (90 - 65 + 1);
			int caracterAleatorio = 65 + (int)Math.floor(Math.random()*longitud);
			if(caracterAleatorio < 91){
			}
            /*Asignación del caracter*/
            A[i][j] = caracterAleatorio;
        }
    }
    String caracterHilo = String.valueOf(A[i][j]);
	return "Palabra de este hilo " + PalabrasHilo;
}

y el error, me lo genera en la función donde me debe guardar el registro a fichero

[url]escribiendoPalabras.escribirNuevaPalabra(NombreHilo, (i + 1), palabrasEscribeEsteHilo, PalabrasHilo, caracterHilo);[/url]

¿alguna idea?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

java.lang.ArrayIndexOutOfBoundsException: 0 con hilos

Publicado por Hector (27 intervenciones) el 13/11/2016 04:21:57
Hola, seguramente el error esta en la asignación de caracterHilo:

1
String caracterHilo = String.valueOf(A[i][j]);

En ese momento los valores de i y j son iguales al limite de filas y columnas del array por lo que se genera un error de acceso, puedes restarle 1 a los valores y con eso el programa funcionara.

1
String caracterHilo = String.valueOf(A[i-1][j-1]);

Veo que también no estas usando caracterHilo aunque lo hayas declarado. Si no lo usas lo mejor es eliminarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 32
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

java.lang.ArrayIndexOutOfBoundsException: 0 con hilos

Publicado por Sergio (19 intervenciones) el 13/11/2016 15:40:53
Correcto, era eso. Gracias. Y si lo uso, solo que para no extender mucho el código, puse el base, no quise llenar el post de paja

GRACIAS NUEVAMENTE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar