字符串是用.equals比较的
如abc与def这两个是否相等用abc.equals(def);

解决方案 »

  1.   

    String name2=rs1.getString("name");  //从数据库中获取name的值
    String name3=“电脑"
     if(name2.equals(name3)
     {     out.println(name2)
           out.print("相等");   
     }
     else
     {    out.println(name2);
          out.println("不等");
     }
    注意:比较两个对象内容是否相同用equals方法,不能使用“==”运算符,如有if(object1==object2),比较的不是两个对象的内容,而是他们在内存中的地址。
      

  2.   

    用==是进行类型的比较,而不是进行字符串的比较,如果==左右的类型相同,返回true,否则返回false。
    String.equals("String")则是进行字符串的比较,返回的结果有三种,大于,等于,小于。
    等于就说明字符串相同。
      

  3.   

    谢谢大家指点 可我还是有些不解 大家都说字符串的比较要用.equals() 而不能用== 的,那么我第二次的实验,为什么却得到了合理的结果  如:
     String name2="电脑";
     if(name2=="电脑") 
     {     out.println(name2)
           out.print("相等");   
     else
     {    out.println(name2);
          out.println("不等");
     }
    结果:
    电脑
    相等3楼的前辈 说==比较的是类型  可是这两次实验name2的类型并没有变化
    为什么会得到相反的结果呢 晚辈可能有些较真 但还是想弄明白问题 
    请前辈们指点
      

  4.   

    ==是比较两个字符串的指针是否相同,equals是比较两个字符串的内容是否相同
      

  5.   

    在对象的比较中==一般是对引用的比较(地址的比较)。

    String name2=rs1.getString("name");  //从数据库中获取name的值
     if(name2=="电脑") 
     {     out.println(name2)
           out.print("相等");   
     }
     else
     {    out.println(name2);
          out.println("不等");
     }
     中 name2指向了rs1返回的地址 而"电脑"这个字符串常量也有一个地址
     他们可能不同(一般是不会相同的)因而得到的结果是不等了
    而在
    String name2="电脑";
     if(name2=="电脑") 
     {     out.println(name2)
           out.print("相等");   
     else
     {    out.println(name2);
          out.println("不等");
     }

    name2指向了字符串"电脑";那么name2的值和字符串"电脑"的地址是相同的
    因而结果是相等了我说的不知您能看明白吗 您最好看看think in java 里面有很好的解释的