StringBuffer не переопределяет метод объекта equals () и, следовательно, возвращает true только при сравнении объекта StringBuffer с самим собой.
public boolean equals(Object obj) {
return (this == obj);
}
Чтобы сравнить два StringBuffers на основе их содержимого, сделайте что-то вроде этого:
sb1.toString().equals(sb2.toString());