A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 王盛 于 2013-6-20 09:52 编辑

谁能给我举例说明  string类的 Equals怎么用!?

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

5 个回复

正序浏览
谢谢各位!
回复 使用道具 举报
刘利民 发表于 2013-6-19 11:35
public class Judge {

        /**

灰常给力~!谢谢~!
回复 使用道具 举报
刘利民的解答很详细,学习了,equals方法是继承自object类,我们在自定义类的时候如果要使用equals方法,记得一定要复写(重写)equals方法
回复 使用道具 举报
equals 方法(是String类从它的超类Object中继承的)被用来检测两个对象是否相等,即两个对象的内容是否相等,区分大小写。

string a = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
string b = new string(new char[] { 'h', 'e', 'l', 'l', 'o' });
Console.WriteLine(a.Equals(b));
回复 使用道具 举报
public class Judge {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                String st="abc";//这里st和sr都直接指向了"abc"字符串,所以==和equals都是true
                String sr="abc";
                System.out.println(st == sr);//true
                System.out.println(st.equals(sr));//true
                String st1 = new String("abc");//在常量池中定义了个"abc"字符串,因为是new出来的,所以会生成一个hash地址值X,变量str指向了这个hash地址值              
                String sr1 = new String("abc");//这里又new了一个新的hash地址值Y,定义变量sr1指向Y         
               System.out.println(st1 == sr1);//为什么会是返回false//X和Y两个hash地址值不一样,当然不能用==了
               System.out.println(st1.equals(sr1));//true//但是两个hash地址值指向的字符串是一样的,就true了

        }

}

其实,论坛里有好多这种例子的,你仔细参考下
http://bbs.itheima.com/forum.php ... ;pre_pos=1&ext=

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马