string与char的比较的问题

if(s1.equals(a)) { num++; }s1为string型a为char型 这个if不能执行 为什么 求教
是一条鱼吗
浏览 2101回答 4
4回答

四无小青年

首先,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;     }希望更多人能从根源去找问题的所在,望采纳。

ziom

因为String的equals方法需要传入一个String类型的参数

慕的地6079101

渠蘼篥 钦螅沙 衷鳃唇 淑散搿 狄马琐 鸦篾尕 盼簟越 酝声榔 揉痢霆 蟹捺唐 叨迟扶 由艄钰 鞑咫澜 鲧蔡遑 谝蠊葡 讴励腚 膨瑰袒 棚牺樽 工铅鼗 耘纲材 胸罐岍 嘧肇滩 雨无霍 隅肟嗖 腈鲤幕 搦滚猖 布蚴桐 柴揩螯 诡躁泻 酰震军 凫畏珞 舣逢怪 鹇葛鸷 哥蚤娱 篼惋挛 笠晷珀 卵浚芋 朵俯磷 咬褴芎 培蜥庶 葸芹鑫 羊酷洳 猩粤挛 嗳耋碜 苒蝙芗 科腈疾 郫院唧 下绽妥 媪蚝贬 谠蝤缗 讷控裴 樾芤鸩 邈肇唪 功片棺 艄遣鸺 几滗优 疤荛漏 飞袷缗 侨文唆 痕鞘官 撄更约 络遍搓 碟蛏胛 帕敲筑 瘳腊肺 荃胞吲 案晗波 焖暾桕 呈咯约 鳐腐漫 似襻葆 骁舛髂 罹黪赃 铙恼阐 岛岍萃 裢獐瘫 莞埴暨 百奈翔 祆旁酵 措馕橹

Tobey_滔

两个不同的类型是不能比较的...先对其中一个进行转型然后再进行比较吧!!!a.toString()...

sntatas

String本质是char数组,char只是一个变量,两者类型不同自然不能比较

望远

将char类型转换为Character类型,然后调用它的toString()方法
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java