Новый класс с методом toString()
Это связано с более ранним вопросом, который я задал. Я добавляю метод 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 ответ
Строки неизменны:
backwards.concat(temp_str);
должно быть
backwards = backwards.concat(temp_str);
И то же самое с конкатенацией out_final.
В качестве альтернативы, если ваш стек довольно большой, StringBuilder может быть полезен и, возможно, более эффективен для вас.