課程
/后端開發(fā)
/Java
/Java入門第三季
if語句中為什么錯誤?
2017-06-27
源自:Java入門第三季 2-4
正在回答
equals()方法本身返回的就是一個(gè)boolean類型的值,即true和false 。你的if里面就等價(jià)于a[i]==true或者a[i]==false 這本身就是錯誤的.
代碼里有兩個(gè)問題:
1, for 語句中的i 應(yīng)該賦初值為0 ? ? ? ? ? ?應(yīng)寫成 ? ? int i = 0;
2, ? 在java里要獲取一個(gè)char , 得用s.charAt(i) 語句, python 可以用s[i] ; 而且char之間比較得用==, 不能用.equals ? ? ? ? 應(yīng)寫成 ? s.charAt(i)=='a'
equals()方法
比較的是對象的引用是否指向同一塊內(nèi)存地址。
可以通過重寫來實(shí)現(xiàn)比較兩個(gè)對象的值是否相同。
“==”用來比較引用數(shù)據(jù)類型時(shí),也是比較內(nèi)存地址。
需要注意的是:因?yàn)樵赟tring、Double等封裝類中,已經(jīng)重載(overriding)了Object類的equals()方法,是進(jìn)行內(nèi)容的比較。
你這個(gè)s變量是字符串吧?字符串取每個(gè)字符可以用s.charAt(i)=='a'這樣來判斷。charAt()返回的是char類型,用==比較
s[i].equals('a') ,不要雙等號
int i 沒有賦初始值
直接 s[i].equals('a') ?不需要 s[i] == xxx
舉報(bào)
Java中你必須懂得常用技能,不容錯過的精彩,快來加入吧
2 回答為什么不能用getBytes()判斷字符是否相同???
3 回答為什么判斷ID是否被占用不用equals??
2 回答判斷是否相同聽不懂
4 回答為什么能在重寫equals語句中用equals方法
2 回答我把上一章split用到這里面,變成字符串了,就可以用equals比較了,但是我if中的語句執(zhí)行了,else語句塊為什么也執(zhí)行了?
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2017-12-14
equals()方法本身返回的就是一個(gè)boolean類型的值,即true和false 。你的if里面就等價(jià)于a[i]==true或者a[i]==false 這本身就是錯誤的.
2017-08-23
代碼里有兩個(gè)問題:
1, for 語句中的i 應(yīng)該賦初值為0 ? ? ? ? ? ?應(yīng)寫成 ? ? int i = 0;
2, ? 在java里要獲取一個(gè)char , 得用s.charAt(i) 語句, python 可以用s[i] ; 而且char之間比較得用==, 不能用.equals ? ? ? ? 應(yīng)寫成 ? s.charAt(i)=='a'
2017-07-06
equals()方法
比較的是對象的引用是否指向同一塊內(nèi)存地址。
可以通過重寫來實(shí)現(xiàn)比較兩個(gè)對象的值是否相同。
“==”用來比較引用數(shù)據(jù)類型時(shí),也是比較內(nèi)存地址。
需要注意的是:因?yàn)樵赟tring、Double等封裝類中,已經(jīng)重載(overriding)了Object類的equals()方法,是進(jìn)行內(nèi)容的比較。
2017-06-27
你這個(gè)s變量是字符串吧?字符串取每個(gè)字符可以用s.charAt(i)=='a'這樣來判斷。charAt()返回的是char類型,用==比較
2017-06-27
s[i].equals('a') ,不要雙等號
2017-06-27
int i 沒有賦初始值
2017-06-27
直接 s[i].equals('a') ?不需要 s[i] == xxx