我是Java
的新手。可能这是一个简单的问题,但我没有得到它。
我有变量,我想检查该变量是否有值。为此,我编写了以下代码。但每次显示false
作为输出。
public class StringOperations {
public static void main(String[] args){
Boolean b=new Boolean("T87778rue");
int i = 10;
System.out.println(b.equals(i));
}
}
答案 0 :(得分:3)
您正在创建一个表示false值的Boolean对象,因为string参数不是“true”(忽略大小写)。
Boolean b=new Boolean("T87778rue");
接下来,检查表示false的Boolean对象是否等于10.它不是。
int i = 10;
System.out.println(b.equals(i));
从布尔构造函数API文档:
布尔值(String s) 如果字符串参数不为null且与字符串“true”相等(忽略大小写),则分配表示值true的Boolean对象。
答案 1 :(得分:1)
在Java中,如果编译,则变量具有值。
最初它可能有一个默认值,该值可能为null,但它始终具有可知值。
在您的情况下,您似乎在询问是否可以将String计算为表达式。这是一个非常不同的主题,你可以用Java来评估表达式。
BTW "1+2"+3
= "1+23"
正在进行字符串操作。
。但每次显示false都是输出。
每次因为每次都是相同的值,它应该是假的。布尔值被解析为真,只有它是“真”而忽略大小写。你的布尔值是假的,这与{10}的Integer
不一样,它永远不会相同。
在初始化之前访问字段的示例
public enum Main {
;
static {
printInJ();
}
static final int i = Integer.parseInt("100");
static final int j = 100;
private static void printInJ() {
System.out.println("i = " + i + ", j = " + j);
}
static {
printInJ();
}
public static void main(String... ignored) {
}
}
打印
i = 0, j = 100
i = 100, j = 100