Ayuda en Un Ciclo

Andrew4d3
13 de Febrero del 2006
Estoy tratando de que corra este ciclo

while(lin!=null){

do{
String hab=lin;
lin = archivoEntrada.readLine();
String sem= bla[0];
int sems=Integer.parseInt(sem);
String ced= bla[1];
int ceds= Integer.parseInt(ced);
String p=hab.substring(0,1); String h=hab.substring(1,2);
int pi=Integer.parseInt(p); int ha=Integer.parseInt(h);

if(pi==1){
habsem[ha-1][sems-1]=ceds;}
else if(pi==2){
habsem[ha+3][sems-1]=ceds;}
else if(pi==3){
habsem[ha+7][sems-1]=ceds;}
else if(pi==4){
habsem[ha+11][sems-1]=ceds;}
else if(pi==5){
habsem[ha+15][sems-1]=ceds;}
else{System.out.println(\"\");}

lin = archivoEntrada.readLine();
cant=lin.length();


}while( cant>=3 );

}

archivoEntrada.close();

Todas las Variables estan declaradas perfectamente y el jdk me copila sin ningun problema.

Pero cuando Corro el programa no se Porke aparce un error que dice

Execption in thread \"main\" java.lang.ArrayIndexOutBoundsException: 1 at pruebita.main<pruebita.java>


Andrew4d3
13 de Febrero del 2006
Que es lo que pasa exactamente? y como lo soluciono?

rubece
13 de Febrero del 2006
Hola, el problema es que estás intentando acceder al segundo elemento de un array de uno o cero elementos. Aunque no sé en cual array de los que tiene te da, pero es eso lo que te pasa has creado un array que tiene un elemento o que simplemente no tiene elementos (puede parecer una tontería pero java deja crearlos como cualquier array de un tamaño mayor, eso si mientras sea no negativo el tamaño que le pases). O sea, averigua de que variable se trata e investiga que tamaño tiene y ya con el código que nos das no se puede saber más, ya que ahí no creas ningún array. Otra posibilidad puede ser que accedas a un elmento de un String o Vector que está fuera de los límites del String o Vector, respectivamente. Es algo de eso estás accediendo a algo que no existe. Bueno creo que eso es todo. Que te vaya bien y hasta luego.