public class BooleanStringBoolean {
public static void main(String []args){
String x = new String();
String y = x.substring(0);
System.out.println(x == y + " : " + x.equals(y));
}
}
这段代码只是打印“false”。我已经检查过了,println中的表达式可以存储为布尔值。这里发生了什么事?
发布于 2018-09-28 10:48:34
在x=y之间加上括号:
System.out.println((x == y) + " : " + x.equals(y));
如果没有这些括号,评价就变成:
(x == (y + " : " + x.equals(y)))
发布于 2018-09-28 10:59:44
试着用括号
public class BooleanStringBoolean {
public static void main(String []args){
String x = new String();
String y = x.substring(0);
System.out.println( (x == y) + " : " + (x.equals(y)) );
}
}
https://stackoverflow.com/questions/-100002781
复制相似问题