400-650-7353
您所在的位置:首頁(yè) > IT干貨資料 > java > 【Java基礎(chǔ)知識(shí)】如何實(shí)現(xiàn)Java字符串比較

【Java基礎(chǔ)知識(shí)】如何實(shí)現(xiàn)Java字符串比較

  • 來(lái)源:Java培訓(xùn)干貨資料
  • 2020-02-07 19:06:52
  • 閱讀()
  • 分享
  • 手機(jī)端入口

對(duì)于比較,在我們的第一反應(yīng)中就是第一個(gè)與第二個(gè)是否相等,在Java開(kāi)發(fā)語(yǔ)言中,我們經(jīng)常是使用雙等號(hào)“==”來(lái)進(jìn)行兩個(gè)變量的判斷,比如3==3為正確(true),但是在Java中使用“==”進(jìn)行字符串判斷的時(shí)候,有時(shí)候兩個(gè)變量明明都是一模一樣的,但是他的結(jié)果卻一直是不相等(false),所以對(duì)于新手開(kāi)發(fā)者來(lái)說(shuō),經(jīng)常會(huì)感到迷惑。通常在我們開(kāi)發(fā)的時(shí)候,經(jīng)常使用的比較方法為a.equals(b)來(lái)進(jìn)行判斷兩個(gè)字符串是否相等。

在Java中,使用“==”一般比較的是兩個(gè)變量的地址,也就是說(shuō)這兩個(gè)變量是在同一個(gè)內(nèi)存單元存儲(chǔ),他們的結(jié)果才會(huì)相等,對(duì)于兩個(gè)字符串String a = "1234"; String b = "1234";對(duì)于這兩個(gè)變量a和b,當(dāng)時(shí)用“==”和使用a.equals(b)的時(shí)候,他們的結(jié)果都是相等的,因?yàn)閍和b兩個(gè)字符串后是兩個(gè)字符串常量,他們?cè)趦?nèi)存中的存儲(chǔ)是在同一個(gè)地方,所以使用“==”和a.equals(b)兩個(gè)結(jié)果都是相等的;

Java字符串比較

但是對(duì)于String a = new String("1234); String b = new String("1234");雖然a和b的結(jié)果都是“1234”,但是使用“==”進(jìn)行判斷的時(shí)候,得到的結(jié)果卻是不相等的,因?yàn)榇藭r(shí)的a和b是兩個(gè)對(duì)象,他們所存在的內(nèi)存位置不相等,所以“==”他的判斷也就是不相等的了,此時(shí)使用a.equals(b)的到的結(jié)果就是正確的;

之所以使用a.equals(b)的結(jié)果是判斷出兩個(gè)字符串一樣,是因?yàn)镾tring類(lèi)重寫(xiě)了equal()的方法,他的比較方法是循環(huán)遍歷兩個(gè)字符串中的每個(gè)字符,只有當(dāng)兩個(gè)字符串中每個(gè)位置上的字符都一樣的時(shí)候,這個(gè)方法返回的值才會(huì)是相等(true);

因此在我們開(kāi)發(fā)過(guò)程中,遇到字符串的比較,使用字符串的equals()的方法進(jìn)行判斷,這樣會(huì)減少很多的bug;同樣不僅僅對(duì)于字符串的比較,對(duì)于任何兩個(gè)對(duì)象的比較,我們都可以使用equal()方法;

文章“【Java基礎(chǔ)知識(shí)】如何實(shí)現(xiàn)Java字符串比較”已幫助

>>本文地址:http://nfbqydst.cn/zhuanye/2020/48331.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學(xué)歷

3 您更想做哪個(gè)方向的工作?

獲取測(cè)試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營(yíng)銷(xiāo)互聯(lián)網(wǎng)營(yíng)銷(xiāo)
  • JavaJava
  • Linux云計(jì)算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運(yùn)營(yíng)全域電商運(yùn)營(yíng)
  • 軟件測(cè)試軟件測(cè)試
  • 室內(nèi)設(shè)計(jì)室內(nèi)設(shè)計(jì)
  • 平面設(shè)計(jì)平面設(shè)計(jì)
  • 電商設(shè)計(jì)電商設(shè)計(jì)
  • 網(wǎng)頁(yè)設(shè)計(jì)網(wǎng)頁(yè)設(shè)計(jì)
  • 全鏈路UI/UE設(shè)計(jì)UI設(shè)計(jì)
  • VR/AR游戲開(kāi)發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運(yùn)營(yíng)新媒體
  • 直播帶貨直播帶貨
  • 智能機(jī)器人軟件開(kāi)發(fā)智能機(jī)器人
 

快速通道fast track

近期開(kāi)班時(shí)間TIME