public class ts {
static boolean isNum1(String s){
if(s=="1")
return true;
return false;
}
public static void main(String args[]){
String str="123";
for(int i=0;i<str.length();i++){
String s=String.valueOf(str.charAt(i));
System.out.println(isNum1(s));
}
}
}我在项目中一直会认为输出结果为 对错错,所以搞了半天没发现错误,
最后发现原来有上面这回事,输出结果为 错错错 ,与我的大脑分析是完全违背的,这种奇怪的事
怎么让我遇到了,如果哪位大哥或少数的小姐姐遇到这种问题,请告诉我下,最好能解释下。。
十分感谢
static boolean isNum1(String s){
if(s=="1")
return true;
return false;
}
public static void main(String args[]){
String str="123";
for(int i=0;i<str.length();i++){
String s=String.valueOf(str.charAt(i));
System.out.println(isNum1(s));
}
}
}我在项目中一直会认为输出结果为 对错错,所以搞了半天没发现错误,
最后发现原来有上面这回事,输出结果为 错错错 ,与我的大脑分析是完全违背的,这种奇怪的事
怎么让我遇到了,如果哪位大哥或少数的小姐姐遇到这种问题,请告诉我下,最好能解释下。。
十分感谢
将==换成equals(“1”)
就可以了。
字符串用这种方法比较能成功的可能性很小
s=="1"这种方式比较的是内存中的地址,很少有两个对象的地址会出现相等的情况
如果用if("".equals(s))那么你的假设情况“对错错”会出现