Николай Мартынов
Николай Мартынов

Как сравнивать строки классов StringBuilder и StringBuffer?

Equals сравнивает сами объекты, а не строки, так как в отличии от String не заоверрайден в этих классах.
Как быть? Конвертировать в String?
Вот так, например:

StringBuilder sb = new StringBuilder();
sb.append("test");
StringBuilder sb2 = new StringBuilder();
sb2.append("test");
System.out.println(sb.toString().equals(sb2.toString()));

Что мешало разрабам Java заоверрайдить метод?

СД
Светлана Долгова

Ява конечно конченая но ненастолько как ты предполагаешь.
equalsIgnoreCase(String anotherString)
Compares this String to another String, ignoring case considerations.
Хотя может у них документация так написана странно
equals(Object anObject)
Compares this string to the specified object.
В других неофициальных источниках вроде пишут, что equals всётаки строки сравнивает.

Ал
Александр

StringBuilder имеет "говорящее" имя - это инструментальный класс для создания строк. Так что ответом на "что мешало разрабам..." будет - дядя архитектор обещал руки оторвать если заоверрайдим, мол, нечего лишнее навешивать.

Пользуйтесь CharBuffer для ваших извращений и будет вам счастье.

Похожие вопросы
С++ работа со строками, классы
Подскажите программу которая сравнивает по строкам 2 текстовых файла
mysql - совсем не сравнивает строки. Что это такое, по логике чисто если, то должно
Установлен последний AdoptOpenJDK. При запуске из программной строки винды лезут крякозябры. Как пофиксить?
Как-то можно напрямую достучаться к внутренней переменной метода класса, не вынося её в класс?
Java. В чем отличие Класс. вызов_метода () и объект. вызов_метода ()?
Java код. Поясните пожалуйста строку.
Почему нельзя создать обобщённый класс вот так public class Test«X[]» {
JAVA, наследовался от абстрактного класса, создал конструктор в классе-наследнике, но выдает ошибку
Не могу понять строку