亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

string與char的比較的問題

string與char的比較的問題

是一條魚嗎 2016-10-19 09:22:33
if(s1.equals(a)) { num++; }s1為string型a為char型 這個if不能執行 為什么 求教
查看完整描述

4 回答

已采納
?
四無小青年

TA貢獻88條經驗 獲得超43個贊

首先,equals()接受的參數是object的,并不是評論中的string,不要誤人子弟,只是在equals()內部使用?instanceof進行了對象的判定。下面是jdk7中的源碼:

????public?boolean?equals(Object?anObject)?{//接收的參數是Object?
????????if?(this?==?anObject)?{
????????????return?true;
????????}
?????//使用instanceof操作判斷傳入的參數是不是屬于String的實例,若為否直接返回false(這也是問題的答案所在)
????????if?(anObject?instanceof?String)?{
????????????String?anotherString?=?(String)?anObject;
????????????int?n?=?value.length;
????????????if?(n?==?anotherString.value.length)?{
????????????????char?v1[]?=?value;
????????????????char?v2[]?=?anotherString.value;
????????????????int?i?=?0;
????????????????while?(n--?!=?0)?{
????????????????????if?(v1[i]?!=?v2[i])
????????????????????????????return?false;
????????????????????i++;
????????????????}
????????????????return?true;
????????????}
????????}
????????return?false;
????}

希望更多人能從根源去找問題的所在,望采納。

查看完整回答
4 反對 回復 2016-10-19
?
ziom

TA貢獻948條經驗 獲得超1109個贊

因為String的equals方法需要傳入一個String類型的參數

查看完整回答
1 反對 回復 2016-10-19
點擊展開后面1
?
Tobey_滔

TA貢獻242條經驗 獲得超128個贊

兩個不同的類型是不能比較的...先對其中一個進行轉型然后再進行比較吧!!!a.toString()...

查看完整回答
反對 回復 2016-10-19
?
sntatas

TA貢獻53條經驗 獲得超11個贊

String本質是char數組,char只是一個變量,兩者類型不同自然不能比較

查看完整回答
反對 回復 2016-10-19
?
望遠

TA貢獻1017條經驗 獲得超1032個贊

將char類型轉換為Character類型,然后調用它的toString()方法

查看完整回答
反對 回復 2016-10-19
  • 4 回答
  • 1 關注
  • 2242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號