Java中String s=="0";if语句if(s!="0")的问题
packagestring作条件;publicclassStr{publicstaticvoidmain(String[]args){Strings00="00",s0=...
package string作条件;
public class Str
{
public static void main(String[] args)
{
String s00 = "00",s0="0";
int n = s00.length();
String sn = s00.substring(n - 1, n);
if (s0!="0")
{
System.out.println("if(s0!='0')判定成功无输出");
}
if (sn != "0")
{
System.out.println("if(sn !='0')判定失败有输出");
}
}
}
谁能解释下两个判定条件有什么本质区别?初学者求指导 展开
public class Str
{
public static void main(String[] args)
{
String s00 = "00",s0="0";
int n = s00.length();
String sn = s00.substring(n - 1, n);
if (s0!="0")
{
System.out.println("if(s0!='0')判定成功无输出");
}
if (sn != "0")
{
System.out.println("if(sn !='0')判定失败有输出");
}
}
}
谁能解释下两个判定条件有什么本质区别?初学者求指导 展开
6个回答
展开全部
String s00 = "00",s0="0";
int n = s00.length(); //n=2
String sn = s00.substring(n - 1, n); sn = '0'
if (s0!="0") // false
{
System.out.println("if(s0!='0')判定成功无输出");
}
if (sn != "0") //false
{
System.out.println("if(sn !='0')判定失败有输出");
}
变量值,有注释, 结果两个if的条件都是false ,所以没有结果输出
int n = s00.length(); //n=2
String sn = s00.substring(n - 1, n); sn = '0'
if (s0!="0") // false
{
System.out.println("if(s0!='0')判定成功无输出");
}
if (sn != "0") //false
{
System.out.println("if(sn !='0')判定失败有输出");
}
变量值,有注释, 结果两个if的条件都是false ,所以没有结果输出
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你用equals就不会出现上面这种情况,==比较的是两个对象的地址,equals比较的才是内容,就是说你这里s0和sn两个对象的地址是不一样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
。。。。字符串比较应该是equals
if 里的条件(sn!="0")改成(!sn.equals("0"))
if 里的条件(sn!="0")改成(!sn.equals("0"))
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sn.equals("0")就是对的
subString()这个方法只有string类型才有
subString()这个方法只有string类型才有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String sn = s00.substring(n - 1, n);
难道这句话不会报错?
难道这句话不会报错?
追问
可以运行,我才拿来的
追答
两个判定条件有什么本质区别?
你写的两个判断一模一样 没有区别
if (s0!="0")
if (sn!="0")
也许你想问的和你表达出来的不一样,你在好好看下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询