contentEquals
contentEquals() 方法用于将此字符串与指定的 StringBuffer 比较。
语法
public boolean contentEquals(StringBuffer sb)
参数
- sb – 要与字符串比较的 StringBuffer。
返回值
如字符串与指定 StringBuffer 表示相同的字符序列,则返回 true;否则返回 false。
实例
public class Test {
public static void main(String args[]) {
String str1 = "String1";
String str2 = "String2";
StringBuffer str3 = new StringBuffer( "String1");
boolean result = str1.contentEquals( str3 );
System.out.println(result);
result = str2.contentEquals( str3 );
System.out.println(result);
}
}
以上程序执行结果为:
true
false
源码
public boolean contentEquals(CharSequence cs) {
// Argument is a StringBuffer, StringBuilder
if (cs instanceof AbstractStringBuilder) {
if (cs instanceof StringBuffer) {//线程安全采用同步
synchronized(cs) {
return nonSyncContentEquals((AbstractStringBuilder)cs);
}
} else {//非线程安全StringBuilder
return nonSyncContentEquals((AbstractStringBuilder)cs);
}
}
// Argument is a String
if (cs.equals(this))
return true;
// Argument is a generic CharSequence
char v1[] = value;
int n = v1.length;
if (n != cs.length()) {
return false;
}
for (int i = 0; i < n; i++) {
if (v1[i] != cs.charAt(i)) {
return false;
}
}
return true;
}