новый класс с методом toString () - PullRequest
0 голосов
/ 14 января 2011

Это связано с ранее заданным мной вопросом.Я добавляю метод toString () в класс.Класс создает произвольно длинное натуральное число, используя стек целых чисел.Я только увеличиваю и уменьшаю, так что стек кажется хорошим способом.Во всяком случае, я не получаю вывод из следующего кода:

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;
}

Он вызывается System.out.println(b4.toString()); Объект number относится к моему Stack<Integer> Я должен взять с концастопку (очевидно, в обратном порядке), а затем переверните ее снова для правильной печати.В любом случае, не спешите, но помощь всегда ценится!

1 Ответ

7 голосов
/ 14 января 2011

Строки являются неизменяемыми:


backwards.concat(temp_str);

должно быть


backwards = backwards.concat(temp_str);

И то же самое с конкатенацией out_final.

Альтернативно, если ваш стек довольно большой StringBuilder может быть полезным и, возможно, более эффективным для вас.

...