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; ????}
希望更多人能從根源去找問題的所在,望采納。

慕的地6079101
TA貢獻3593條經驗 獲得超0個贊
渠蘼篥
欽螅沙
衷鰓唇
淑散搿
狄馬瑣
鴉篾尕
盼簟越
醞聲榔
揉痢霆
蟹捺唐
叨遲扶
由艄鈺
韃咫瀾
鯀蔡遑
諞蠊葡
謳勵腚
膨瑰袒
棚犧樽
工鉛鼗
耘綱材
胸罐岍
嘧肇灘
雨無霍
隅肟嗖
腈鯉幕
搦滾猖
布蚴桐
柴揩螯
詭躁瀉
酰震軍
鳧畏珞
艤逢怪
鷴葛鷙
哥蚤娛
篼惋攣
笠晷珀
卵浚芋
朵俯磷
咬襤芎
培蜥庶
葸芹鑫
羊酷洳
猩粵攣
噯耋磣
苒蝙薌
科腈疾
郫院唧
下綻妥
媼蠔貶
讜蝤緡
訥控裴
樾芤鴆
邈肇唪
功片棺
艄遣鵂
幾潷優
疤蕘漏
飛袷緡
僑文唆
痕鞘官
攖更約
絡遍搓
碟蟶胛
帕敲筑
瘳臘肺
荃胞吲
案晗波
燜暾桕
呈咯約
鰩腐漫
似襻葆
驍舛髂
罹黲贓
鐃惱闡
島岍萃
褳獐癱
莞埴暨
百奈翔
祆旁酵
措馕櫓
添加回答
舉報
0/150
提交
取消