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!

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top