新聞中心
本篇文章為大家展示了使用Java怎么判斷字符串是否相等,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

相等判斷操作符==
Java中,==相等判斷符用于判斷基本數(shù)據(jù)類型和引用數(shù)據(jù)類型。 當(dāng)判斷基本數(shù)據(jù)類型的時(shí)候判斷的是數(shù)值,當(dāng)判斷引用數(shù)據(jù)類型時(shí)判斷變量是否指向同一引用對(duì)象。
使用==判斷字符串時(shí),判斷的是兩個(gè)字符串是否指向同一個(gè)對(duì)象。如果兩個(gè)字符串指向同一個(gè)對(duì)象,那么它們就是相同的,使用==比較的結(jié)果也就是True。如果兩個(gè)字符串指向不同的對(duì)象,那么它們不相同,使用==比較的結(jié)果也就是False。
通過字面賦值的時(shí)候,相同的字符串會(huì)指向同一個(gè)對(duì)象,例如:
String str1="abcde";// 把"abcde"放入常量池中,編譯時(shí)產(chǎn)生 String str2="abcde";// 引用常量池中的對(duì)象,不會(huì)重新創(chuàng)建對(duì)象 str1 == str2; //str1和str2指向同一個(gè)對(duì)象,結(jié)果是true
但如果另有一個(gè)str3,不是通過這種字面的方式被賦值的,即便str3的值也是"abcde",例如:
String str3 = new String("abcde");//運(yùn)行時(shí)把"abcde"放入堆里面,在堆中創(chuàng)建一個(gè)對(duì)象
str1 == str3; //str1和str3指向不同的對(duì)象,結(jié)果是false相等判斷方法equals()
在Java中,可以使用equals()方法判斷字符串的內(nèi)容是否相同。
String str1="abcde";
String str3 = new String("abcde");
str1.equals(str3);//str1和str3的值一樣,結(jié)果是true
str1 == str3; //str1和str3指向不同的對(duì)象,結(jié)果是falseequals()方法原理
為什么可以使用equals()方法呢,我們看下String 類中的 equals()方法的源碼。
public boolean equals(Object anObject) {
if (this == anObject) { //先比較兩個(gè)字符串的引用是否相等(是否指向同一個(gè)對(duì)象), 是直接返回true
return true;
}
if (anObject instanceof String) { //兩個(gè)引用不等還會(huì)繼續(xù)比較
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value; //字符串類是用字符數(shù)組實(shí)現(xiàn)的, 先要拿到兩個(gè)字符串的字符數(shù)組
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) { //然后對(duì)兩個(gè)數(shù)組逐個(gè)字符地進(jìn)行比較
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}從上面的源碼可以看到, 當(dāng)調(diào)用 String 類型數(shù)據(jù)的equals()方法時(shí),首先會(huì)判斷兩個(gè)字符串的引用是否相等,也就是說(shuō)兩個(gè)字符串引用是否指向同一個(gè)對(duì)象,是則返回true。
如果不是指向同一個(gè)對(duì)象,則把兩個(gè)字符串中的字符挨個(gè)進(jìn)行比較。
上述內(nèi)容就是使用Java怎么判斷字符串是否相等,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:使用Java怎么判斷字符串是否相等-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/gcdsj.html


咨詢
建站咨詢
