Современный способ оставил бы манипулирование строителем строк библиотечным методом:
public String toString() {
return someListOfNumbers.stream()
.map(Number::toString)
.collect(Collectors.joining(" "));
}
Я предположил, что someListOfNumbers
- это List<Long>
.Мой метод не дает точно такой же результат, как ваш: у вашего результата есть пробел, который я пропустил.Если вам нужно это место, вы можете либо добавить его самостоятельно, либо использовать:
.collect(Collectors.joining(" ", " ", ""));
Трех аргумент joining
ожидает разделитель, префикс и суффикс в указанном порядке (я даю пустую строку как суффикс).
Примечание: я хотел использовать .map(Long::toString)
, но он не компилируется, потому что он неоднозначен.Здесь toString
может относиться либо к no-arg Long.toString
, либо к статическому one-arg Long.toString(long)
.Я решил это, ссылаясь на него через суперкласс Long
: Number::toString
.Другое решение было бы .map(String::valueOf)
, как в ответе Кароля Доубеки.