nueva clase con el método toString ()
Pregunta
Esto está relacionado con una pregunta anterior, pregunté. Estoy agregando un método toString () de una clase. La clase crea un número natural arbitrariamente larga usando una pila de número entero. Sólo estoy aumentar y disminuir, por lo que la pila parecía un buen camino a seguir. De todos modos, no tengo ninguna salida desde el siguiente código:
public String toString() {
String out_final = "", backwards = "", temp_str = "";
Integer temp_int = 0;
Character temp_char = ' ';
while(!number.empty()) {
temp_int = number.pop();
temp_str = temp_int.toString();
backwards.concat(temp_str);
}
while(backwards.length() > 0) {
temp_char = backwards.charAt(backwards.length() - 1);
temp_str = temp_char.toString();
out_final.concat(temp_str);
}
return out_final;
}
Se invoca por System.out.println(b4.toString());
El number
objeto se refiere a mi Stack<Integer>
Tengo que tomar desde el extremo de la pila (obviamente, a la inversa) y luego revertir de nuevo para imprimir correctamente. De todos modos, no tiene prisa en este caso, pero siempre es bienvenida!
Solución
Las cadenas son inmutables:
backwards.concat(temp_str);
debería ser
backwards = backwards.concat(temp_str);
Y lo mismo con la concatenación out_final.
Por otra parte, si su pila es bastante grande, un StringBuilder pueden ser útiles y posiblemente más eficaz para usted.