Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Problema con array... (http://www.forosdelweb.com/f45/problema-con-array-546827/)

RastonE 09/01/2008 19:17

Problema con array...
 
Hola, como va?... Bueno les comento hace poco que empiezo con java y tengo un problema, que seguramente no va a ser demasiado complicado para uds...

La cosa es simple, estoy leyendo un archivo, con el siguiente formato
Nombre Apellido # Tipo # Direccion # Iva # Cuit
Logro leerlo y dividir las palabras, lo hago de esta forma,
palabra = linea.split("#");
y ahi voy pasando cada palabra a un constructor
Segun el tipo, osea particular o empresa, creo el objeto y los tengo que poner en un array de objetos de Cliente...

Mi problema y con el que me estoy volviendo loco es que me da el siguiente error:

Código:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at examen.Datos.cargarDatos(Datos.java:69)
        at examen.TestFacturacion.main(TestFacturacion.java:28)
Java Result: 1

Y no se como solucionarlo :neurotico
Espero que me puedan dar una mano, cualquier otra cosa que vean que este mal me avisan por favor :borracho:

Muchas gracias por leer (si llegaron aca:arriba:)!!!

GreenEyed 10/01/2008 01:23

Re: Problema con array...
 
ArrayIndexOutOfBoundsException quiere decir que estas leyendo una posicion de un array que no existe. Por ejemplo si intentas leer la cuarta posicion de un array de 3 elementos.

En este caso, en la linea 69 de tu clase estas intentando leer la primera posicion de un array que parece estar vacio.

S!

RastonE 10/01/2008 11:48

Re: Problema con array...
 
Si eso lo se, GreenEyed...Es lo que no entiendo! Yo le doy el tamaño de 15 lugares aca...

Código:

    String[] palabra;
        palabra = new String [num*5];

Y el error de la linea 69 es,

Código:


if(j == 3){
        direccion = (String)palabra[1];}

No entiendo por que :neurotico:

R4Y 11/01/2008 02:13

Re: Problema con array...
 
No estoy seguro de esto pero creo que no deberias asignarle el tamaño como
lo haces, yo lo haria algo así:

String[] palabra;
palabra = new String [num*5];


de ahi quitas la segunda linea, es decir, no le indiques el tamaño ya que lo tomara automaticamente dependiendo del numero de palabras y solo dejas:

palabra = linea.split("#");

y verifica su tamaño antes de tratar de consultar un indice que no existe con:

palabra.length()

Saludos.

Raymundo León G.

GreenEyed 11/01/2008 03:25

Re: Problema con array...
 
Cita:

Iniciado por R4Y (Mensaje 2244514)
No estoy seguro de esto pero creo que no deberias asignarle el tamaño como
lo haces, yo lo haria algo así:

String[] palabra;
palabra = new String [num*5];


de ahi quitas la segunda linea, es decir, no le indiques el tamaño ya que lo tomara automaticamente dependiendo del numero de palabras y solo dejas...

Si no le indicas el tamaño y no lo creas con el constructor, lo que obtendras es un NullPointerException, fijo. Los arrays en Java no crecen dinamicamente a medida que les añades elementos, es lo hacen las colecciones. Además, length es un atributo de los arrays, no un metodo, así que es palabra.length, sin los parentesis. Quizá te hayas confundido con List o Vector.

En cuanto al error original... si num es 0, el array tendra tamaño cero y saltara el error, por ejemplo.

S!

RastonE 11/01/2008 19:46

Re: Problema con array...
 
GreenEyed, gracias por contestar, como decis tengo que declarar el tamaño del array si no seria imposible...

Ahora ya resolvi el problema! gracias por las respuesta. paso a explicar...
La funcion split lo que haces es crear un array a partir de un String segun una marca de corte por ej.

hola#como#estan?

si utilizo la funcion split("#") a ese String lo que obtendria seria un array de 3 posiciones con
[0]hola
[1]como
[2]estan?

yo estaba utilizando mal la funcion por eso me ocurria el NullPointerException, llama a una posicion del array que simplemente no existia por lo que mencione antes...

Espero que le sirva a alguien
Slds!


La zona horaria es GMT -6. Ahora son las 05:41.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.