//我是想让当两个文本框都不为空时输出”正确“,其他情况输出“错误”
                   
                   String id =jfid.getText().trim();

                   String pwd =new String(jfpwd.getPassword());                  //第一种方法
if(!id.equals("")&&!pwd.equals("")){
System.out.println("正确");
}else {
System.out.println("错误");
}
//第二种方法
if(id!=""&&pwd!=""){
System.out.println("正确");
}else {
System.out.println("错误");
}

为什么第二种方法不成立呢我为此捣鼓了一上午,还希望高手指点小弟一二。

解决方案 »

  1.   

    String 的equals方法比较的是子付串的值
    ==(!=)比较的是String 的地址  如下代码:
    String s1 = new String("abc");
    String s2 = new String("abc");
    s1 == s2  false
    s1.equals(s2)  true
      

  2.   

    String 的equals方法比较的是子付串的值
    ==(!=)比较的是String 的地址  如下代码:
    String s1 = new String("abc");
    String s2 = new String("abc");
    s1 == s2  false
    s1.equals(s2)  true
      

  3.   

    引用类型都要使用equals比较相等性, ==/!= 确定的是是不是同一个。
      

  4.   

    值相等,hashCode不一定相等。
      

  5.   

    设2个字符串s1,s2
    String s1 = new String("123");
    String s2 = new String("123"); 
    System.out.println(s1 == s2);//false!
    equals()方法仅比较内容,而==不仅比较内容还比较地址,只有2者全相等才返回true,故比较字符串内容只能用equals()但是在
    String s1 = new String("123");
    s2 = s1;
    System.out.println(s1 == s2);//true
    这种情况下==是成立的,因为s1,s2的地址相同。
      

  6.   

    String pwd =jfpwd.getPassword();
    这样应该对的,
      

  7.   

    如3楼,java中用引用类型用equal判断值相等,而==(!=)是判断引用的是否为同一个.个人认为就是判断字符串是否为空的时候,最好是判断字符串的长度是否为0比较好.
      

  8.   

     !=比较的是引用,equals比较的是内容
      

  9.   

    if(str != null && str.trim().length == 0) {
       return "不为空";
    }
      

  10.   

    lz 找本讲 String 类 的就会有说明 , 为了避免异常, 建议用 equals()等 函数 。