首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

string equals int 的有关问题

2012-09-01 
string equals int 的问题昨天写程序遇到的一个问题。public class TestEquals {/*** @param args*/public

string equals int 的问题
昨天写程序遇到的一个问题。

public class TestEquals {/*** @param args*/public static void main(String[] args) {String s = "1";Integer i = new Integer(1);System.out.println(s.equals(1));//falseSystem.out.println(s.equals(String.valueOf(1))); //trueSystem.out.println(s.equals(i)); //falseSystem.out.println(s.equals(i.toString())); //true}}




可能没有人会像我这么2 ,去拿string equals int 。。。

equals的参数是Object,java1.6自动封箱 int->Integer 这么写编译的时候也没报错

s.equals(1) 先把 int 1 封箱为 Integer 1 然后比较



jdk中 equals的实现方式

public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = count;if (n == anotherString.count) {char v1[] = value;char v2[] = anotherString.value;int i = offset;int j = anotherString.offset;while (n-- != 0) {if (v1[i++] != v2[j++])return false;}return true;}}return false;}


用string equals int 的时候 在
只有参数是String类型的时候才会比较字符,不是的话比较引用后直接返回

热点排行