Muy buenas a todos. Tengo un problema con una practica. Tengo lo siguiente:
public class RegistroDatosPersonales extends RegistroLH{
public static final int TAMANIO_NOMBRE = 15;
public static final int TAMANIO_APELLIDOS = 30;
private int numReg;
private char[] Nombre = new char [TAMANIO_NOMBRE];
private char[] Apellidos = new char [TAMANIO_APELLIDOS];
private int Telefono;
public String obtenerNombre()
{String s = new String(this.Nombre);
return s;
}
public String obtenerApellidos()
{ String s = new String(this.Apellidos);
return s;
}
.
.
.
String msg = "";
msg += "RegistroDatosPersonales [control= " + super.obtenerControl() + ", numReg= " + this.numReg
+ ", nombre= " + this.obtenerNombre() + ", apellidos= " + this.obtenerApellidos() + ", telefono= " + obtenerTelefono() + "]";
mi problema es el siguiente, tengo las clases que obtienen los atributos de la clase convertidos a string (obtenerNombre, obtenerApellidos...). Hasta ahi todo bien, pero al intentar mostrar por pantalla el contenido de msg solo muestra hasta el this.obtenerNombre, la parte d apellidos ya se la come, y todo lo k viene detras tambien, es decir muestra la variable incompleta. He probado que los metodos devuelven los valores correctos y que cuando no llamo a uno de estos metodos de obtener (por ejemplo quitando obtenerNombre y apellidos) si muestra bien lo que viene despues. Teneis alguna idea a que puede ser debido???. Muchas gracias y un saludo a todos.
EDITO: Al cambiar de linea despues de los campos conflictivos lo hace bien, pero cambiando de linea("\n")----- msg += "RegistroDatosPersonales [control= " + super.obtenerControl() + ", numReg= " + this.numReg + ", nombre= " + this.obtenerNombre() + " \n apellidos= " + this.obtenerApellidos() + "\n telefono= " + obtenerTelefono() + "\n ]";
De esta forma escribe todos los campos correctamente, eso si, con cambio de linea. El objetivo es que muestre la tira entera en una linea.