返回始终为真,即使它为假

时间:2019-03-29 21:59:17

标签: java oop

我正在尝试制作荷兰邮政编码验证器。第一步,我需要检查邮政编码的第一个字符(始终是数字)是否在1-9之间。但是,当我只是尝试制作一个简单的if语句来检查第一个字符是否为false时,它返回为true。在此示例中,我将预制字符串“ 2097AR”作为方法“ checkPostcode”的输入。

public static boolean checkPostcode(String postcode){
        String postcodeEen = postcode.substring(0,1);

        boolean resultCheck = true;

        System.out.println(postcodeEen);

        if (postcodeEen == "1"){
            resultCheck = false;
        }


        return resultCheck;

    }

1 个答案:

答案 0 :(得分:2)

Java中字符串的=运算符检查两个对象是否相同,而#equals(String s)则检查字符串的内容是否相同。

该函数始终返回true,因为postcodeEen"1"不是同一对象,这使条件postcodeEen == "1"为假。

这是工作代码段:

if(postcodeEen.equals("1"){
    return false;
}