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
提交
取消