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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© z_one 中级黑马   /  2015-11-11 22:12  /  327 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JAVA中我用split读取一串字符返回给一个数组,但是当我用数组判断的时候为什么无法判断,下面是代码
  String str = "boo:and:foo";
     String [] b=str.split(":");
     if(b[0]=="boo"){
      System.out.println("这个相同哦");
     }
按说应该输出一个"这个相同哦",但是为什么没有输出

1 个回复

正序浏览
楼主,我拿你的代码试了一次,发现把==改成equals就好了。
貌似可以这么解释,因为==是比较内存地址的,数组中的字符串b[0]位于堆内存,而直接给出的字符串"boo"是位于常量池的,俩内存地址不一样,比较结果是false。字符串这一块确实比较晕,看看楼下大神有没有什么好的解答吧。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马