如何检查变量是否有价值?

时间:2013-07-31 18:32:52

标签: java

我是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));
    }
}

2 个答案:

答案 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