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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 混乱的世界 于 2015-4-23 22:39 编辑
  1. import java.io.*;
  2. class Demo
  3. {
  4.         public static void main(String[] args) throws Exception
  5.         {
  6.                 String str1="abc";
  7.                 String str2="abc";
  8.                 System.out.println(str1==str2);
  9.                 System.out.println(str1=="abc");
  10.                 System.out.println(str1.equals("abc"));
  11.                 BufferedReader bfr=new BufferedReader(new InputStreamReader(System.in));
  12.                 String s=null;
  13.                 PrintWriter pw=new PrintWriter(System.out,true);
  14.                 while((s=bfr.readLine())!=null)
  15.                 {
  16.                         //为什么要用equals方法才能匹配到over做为结束标记。
  17.                         if(s=="over")
  18.                                 break;
  19.                         else
  20.                                 pw.println(s.toUpperCase());
  21.                 }
  22.                 bfr.close();
  23.                 pw.close();
  24.         }
  25. }
复制代码

4 个回复

倒序浏览
求告知,两个String对象用==判断和equals方法判断到底有什么区别
回复 使用道具 举报
==比较是地址 equals比较是内容
回复 使用道具 举报
chenxin2015 发表于 2015-4-23 21:42
==比较是地址 equals比较是内容

   public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
String中的equals同样用了对象直接的==来判断,
还有字符串不都是固定的么,每一个字符串在系统中的地址都是一定的,你看我上面的几个判断语句,
用==来判断两个字符串和equals效果是相同的
回复 使用道具 举报

回帖奖励 +2

String类中==是比较指向的对象是否相同,也就是地址值
              equals比较的是字符串内容是否相同
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马