Для чего toString() в StringBuffer?

129
23 января 2020, 18:10

Чем отличаются эти строчки ?

Зачем toString() ?

Тут я беру число из массива и сравниваю с обратным (проверяю на полиндром)

Но если убрать toString() в конце условия, то не сработает ?

for (int i = 0; i < n; i++) {
    if (Integer.toString(arr[i]).equals(new StringBuffer().append(Integer.toString(arr[i])).reverse().toString()))
        System.out.println(arr[i]);
}

Но вот другой пример без toString() работает:

System.out.print(new StringBuffer().append("Hello").reverse());

elloH

Answer 1

Метод System.out.print() вызывает toString() автоматически. Так что приведение типов делать не требуется. А вот метод equals() требует параметр того же типа что и сам объект. Если переопределить этот метод, то конструкция в выражении будет работать. Для более детального понимания как работает метод print() надо смотреть документацию.

READ ALSO
Передать переменную из URL в val()

Передать переменную из URL в val()

Нужно чтобы при вызове sitecom/?Email=ivan

128
Не корректно работает нажатие на кнопку в javascript

Не корректно работает нажатие на кнопку в javascript

Пытаюсь немного упростить себе жизнь и решил написать javascript-код, который при загрузке страницы автоматически заполняет необходимы поля...

104
Как сделать динамический навбар?

Как сделать динамический навбар?

Задача такая - сделать динамически изменяющий цвет навбар, взависимости от высоты он должен плавно менять цвет

135
Расчет расстояния и цен Яндекс карт

Расчет расстояния и цен Яндекс карт

Имеется скрипт, который рассчитывает стоимость доставки в зависимости от расстоянияТакже, он вычисляет в пределах МКАД доставка или нет

126