Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Java (http://www.forosdelweb.com/f45/)
-   -   Ayuda! Como declarar una instancia de este constructor (http://www.forosdelweb.com/f45/ayuda-como-declarar-instancia-este-constructor-564364/)

bladu 09/03/2008 15:13

Ayuda! Como declarar una instancia de este constructor
 
Hola!

Tengo esta clase :
public class Secuencia {

private static final int Caracteres=30;
private String texto[];

public Secuencia(String pTexto[]) {
for (int i=0;i<MAXCAR;i++)
{
this.texto[i]=pTexto[i];
}
this.texto=pTexto;
}

public String[] obtTexto()
{
return (texto);
}

}

La variable texto tiene que tener una longitud maxima de 30 caracteres, sea cual sea la longitud de caracteres de la variable

Ahora en el programa principal quiero instanciar a la clase Secuencia:

Hago lo siguiente:

public static void main(String[] args) {
String datos[]=new String[1];
String a="Esto es una prueba";
datos[0]=a;
Secuencia s= new Secuencia(datos);
System.out.println(s.obtTexto()); // Aqui quiero sacar el mensaje "Esto es una prueba"

}

Pero en la linea "Secuencia s= new Secuencia(datos); " me da un Null Pointer Exception, cuyo origen tiene en la instruccion " this.texto[i]=pTexto[i];" y no se como resolverlo.

¿Alguien me puede ayudar?

Gracias y un saludo

vdpazmino 10/03/2008 00:00

Re: Ayuda! Como declarar una instancia de este constructor
 
En la parte del constructor te falta instanciar el arreglo:

public Secuencia(String pTexto[]) {
this.texto= new String[Caracteres];
for (int i=0;i<MAXCAR;i++)
{
this.texto[i]=pTexto[i];
}
this.texto=pTexto;
}

bladu 10/03/2008 03:01

Re: Ayuda! Como declarar una instancia de este constructor
 
Cita:

Iniciado por vdpazmino (Mensaje 2316115)
En la parte del constructor te falta instanciar el arreglo:

public Secuencia(String pTexto[]) {
this.texto= new String[Caracteres];
for (int i=0;i<MAXCAR;i++)
{
this.texto[i]=pTexto[i];
}
this.texto=pTexto;
}


Hola!

Gracias por responder.

Sigue sin salirme bien si pongo this.texto= new String[Caracteres]; en la linea this.texto[i]=pTexto[i]; me da un error de : java.lang.ArrayIndexOutOfBoundsException: 1

¿sabe alguien como solucionar esto?

Gracias y un saludo

bladu 10/03/2008 04:47

Re: Ayuda! Como declarar una instancia de este constructor
 
Lo he arreglado un poco, pero sigo teniendo un problemilla:

Tengo esta clase :
public class Secuencia {

private static final int Caracteres=30;
private String texto[]=new String [Caracteres];

public Secuencia(String pTexto[]) {
for (int i=0;i<MAXCAR;i++)
{
this.texto[i]=pTexto[i];
}
this.texto=pTexto;
}

public String[] obtTexto()
{
return (texto);
}

}

En el principal
public class Main {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

String datos[]=new String[1];
String a="Esto es una prueba";
datos[0]=a;
Secuencia s= new Secuencia(datos);
System.out.println(s.obtTexto());
}

Pero cuando lo ejecuto en vez de la salirme el texto "Esto es una prueba" me sale la direccion de memoria, es decir: [Ljava.lang.String;@19821f

y yo quiero que me salga el texto


¿Alguien me puede ayudar?

Gracias y un saludo
}

MK2 12/03/2008 05:45

Re: Ayuda! Como declarar una instancia de este constructor
 
La función obtTexto está retornando un array (String[]) y no un string, de ahí que no te devuelva el texto.

Tampoco veo la variable MAXCAR definida en la clase Secuencia, aunque supongo que si lo tendrás definidio y no lo has puesto.

bladu 12/03/2008 15:48

Re: Ayuda! Como declarar una instancia de este constructor
 
Cita:

Iniciado por MK2 (Mensaje 2319613)
La función obtTexto está retornando un array (String[]) y no un string, de ahí que no te devuelva el texto.

Tampoco veo la variable MAXCAR definida en la clase Secuencia, aunque supongo que si lo tendrás definidio y no lo has puesto.

Gracias por la respuesta MK2 ya solucione el problema


La zona horaria es GMT -6. Ahora son las 07:13.

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