Crear String a partir de una Lista de caracteres son concatenar(problema)

Iniciado por er_rafael_rafi, 21 Junio 2009, 13:25 PM

0 Miembros y 1 Visitante están viendo este tema.

er_rafael_rafi

Hola, muy buenas a todos, pues bien paso a contaros mi pequeño problemilla...
He hecho un pequeño problema de String que es el siguiente...
"A partir de una lista enlazada de caracteres crear un string con dichos caracteres sin utilizar la concatenacion"
Pues bien rapidamente pense que los String tambien se construyen a base de un array de caracteres, y centre el programa en esa idea...aqui os dejo el codigo.
Código (java) [Seleccionar]
class eje2{

char[] frase=new char[0];

String pasar(Lista <Character> l){
try{
int i=0;
for(Posicion p=l.posicionPrimero();p!=l.posicionFin();p=l.siguiente(p)){
frase=this.meter(frase,l.obtenerElemento(p).charValue());

}
}catch(MyException e){System.out.println(e);}
String frase2=new String(frase);
return frase2;
}

private char[] meter(char[] c, char a){
char[]c2=new char[c.length+1];
c2[c2.length-1]=a;
return c2;
}



public static void main(String[]args){
Lista <Character>l=new Lista<Character>();
eje2 ej=new eje2();
try{
l.insertar(l.posicionFin(),new Character('h'));
l.insertar(l.posicionFin(),new Character('o'));
l.insertar(l.posicionFin(),new Character('l'));
l.insertar(l.posicionFin(),new Character('a'));
}catch(MyException e){System.out.println(e);}
String pa=ej.pasar(l);
System.out.println(pa);
}
}


Pues bien, el problema viene que el programa no hace lo que deberia, ya que no pinta el string correspondiente, y por muchas vueltas que le doi no encuentro el fallo...Gracias de antemano por vuestra ayuda...
P.S: La clase Lista es de mi cosecha propia pero es mas o menos la misma que la LinkedList de java...

Saludossss

Chuidiang

Hola:

En el método meter() estas haciendo un nuevo array y metiendo al final el nuevo caracter que te pasan, pero .... no estás copiando todos los que había antes en el array antiguo.

Se bueno.

er_rafael_rafi

Muchisimas gracias por la solucion...creo q tenia un dia malo cuando intentaba hacer esa tonteria...xD

Saludossss

sapito169

lol
que buen chiste que no sabes que sale asi


String a = new String(ArregloDeCaracTeres);


Chuidiang

Creo que sí lo sabe, fíjate en la línea

String frase2=new String(frase);

Se bueno.

juancho77