什么是比较StringBuilder对象的有效方法
2022-09-01 08:12:36
好吧,我有两个StringBuilder对象,我需要在Java中比较它们。我知道我能做到的一种方式是
sb1.toString().equals(sb2.toString());
但这意味着我正在创建两个String对象,有没有更好的方法来比较StringBuilder对象。可能是您不需要创建其他对象的东西?
好吧,我有两个StringBuilder对象,我需要在Java中比较它们。我知道我能做到的一种方式是
sb1.toString().equals(sb2.toString());
但这意味着我正在创建两个String对象,有没有更好的方法来比较StringBuilder对象。可能是您不需要创建其他对象的东西?
正如您显然已经知道的那样,继承自 ,因此仅当传递与参数相同的对象时,才返回 true。它不比较两个s的内容!StringBuilder
equals()
java.lang.Object
StringBuilder.equals()
StringBuilder
如果您查看源,您将得出结论,最有效的比较(不涉及创建新对象)是比较返回值,然后如果它们相同,则比较每个字符的返回值。.length()
charAt(i)
由于 Java 11 实现了 ,因此您可以使用一种方法进行相等性测试:StringBuilder
Comparable
compareTo
System.out.println(sb1.compareTo(sb2) == 0);