一个十分奇怪的问题,if语句居然不能执行 字符串比较应该用equals方法。if (jTextField1.getText()=="strange")改为if (jTextField1.getText().equals("strange")) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是啊两个字符串的比较应该是"equals()",而不能用"==" 同意以上。我也遇见类似的问题,这个问题是不是类似:判断一个字符串是否为空,不能用if(str==null),而要用str.length==0.??我也不是很清楚,希望给个解释。 if不能执行,显然是if条件为false导致的嘛,难道还是编译器又问题不成,至于那错了,楼上的老兄们都讲得很清楚了,这种简单的问题要学会自己定位,,,,,赫赫,看起来我好像高手,其实也是刚刚入门:) To lml97(菱子) 你的str.length==0是判断该字符串是否为空串null是对象的一种特殊的状态另外,判断对象也可用==,不过,这是判断两个对象是否指向同一个地址,是否完全相同,和equals的概念不同。 这好象是和内存地址有关系的,“==”一般比较两个对象的内存地址是否一样,equals比较两个对象的值。比如一个String变量s1="hehe",而s2="hehe",则他们指的是同一个内存地址,如果用“==”和equals()来比较都返回true,但是,当你声明s2=new String("hehe"),则分配的内存地址就不一样了,用“==”比较就会返回false,用equals()比较就返回true,所以一般情况之下比较两个对象是否的值是否一样应该用equals().public class Test{ public static void main(String[] args){ String s1="hehe"; String s2=new String("hehe"); System.out.println(s1==s2); System.out.println(s2.equals(s1)); }}输出是:false,true将s2=new String("hehe") 换成s2="hehe"则输出就变成:true,true 我来晚了,我同意xujian_xj(大灰狼) 的讲法,确实是这个问题。 正如上述所说:判断字符串相等是用 eaquals() if (jTextField1.getText().equals("strange")) Extjs DataView 图片显示不出 求大家 帮助谢谢了 怎么实现复杂的窗口? 自学java路上的一些疑惑 想彻底的学好JAVA,大家帮帮忙 字符串这样赋值不对吗 关于一个JFace的类怎么写一个main方法让它运行起来 又有了点分,请教log4j的问题 怎样在windows2003 server上配置jdk1.4,和resin 一个问题 新手的问题 请解释一下一个很简单的问题:System.out.println(".......");…… 在禁用cookie的情况下,如何使用session
我也遇见类似的问题,这个问题是不是类似:判断一个字符串是否为空,不能用if(str==null),而要用str.length==0.??
我也不是很清楚,希望给个解释。
你的str.length==0是判断该字符串是否为空串
null是对象的一种特殊的状态
另外,判断对象也可用==,不过,这是判断两个对象是否指向同一个地址,是否完全相同,和equals的概念不同。
public static void main(String[] args){
String s1="hehe";
String s2=new String("hehe");
System.out.println(s1==s2);
System.out.println(s2.equals(s1));
}
}
输出是:false,true
将s2=new String("hehe") 换成s2="hehe"则输出就变成:true,true
我同意xujian_xj(大灰狼) 的讲法,确实是这个问题。