以布尔方法返回字符串

时间:2019-12-28 15:11:00

标签: java string boolean

我有一个如下所示的布尔方法

public boolean validID(String personalNumber) { .... }

我想根据布尔值是true还是false来打印字符串“有效”或“无效”。

问题是如何在布尔方法中打印出字符串。即使if陈述为true,下面的代码也始终返回false。

 if (sum % 10 == 0) {
        return Boolean.parseBoolean("is valid");
    } else {
        return false;
    }

2 个答案:

答案 0 :(得分:2)

您只有两个选择:

  • 一种boolean方法:

    public boolean validID(String personalNumber) { 
        // ... code to compute 'sum'
        return sum % 10 == 0;
    }
    
  • 一种String方法:

    public String validID(String personalNumber) { 
        // ... code to compute 'sum'
        if (sum % 10 == 0) {
            return personalNumber + " is valid";
        } else {
            return personalNumber + " is not valid";
        }
    }
    

或者将两者结合在一起的选择,将String称为boolean之一:

public boolean isValidId(String personalNumber) { 
    // ... code to compute 'sum'
    return sum % 10 == 0;
}

public String validID(String personalNumber) { 
    if (isValidId(personalNumber)) {
        return personalNumber + " is valid";
    } else {
        return personalNumber + " is not valid";
    }
}

我建议采用boolean,最好是让该方法找到personalNumber的有效性,并让调用它的代码处理结果以打印消息,因为您可以再次使用此方法,这一次您需要布尔结果以不同的方式处理它

String id = "fs6d7f6sd";
if(this.validID(id))
    System.out.println("ID is valid");
else
    System.out.println("ID is not valid");

答案 1 :(得分:0)

我建议使用bean Result。 检查我的代码。

class Result {
    private boolean value;
    private String message;

    public Result(boolean value, String message) {
        this.value = value;
        this.message = message; 
    }
    // getter & setter
}

public Result validID(String number) { 
    // ... code to compute 'sum'
    return sum % 10 == 0 ? 
        new Result(true, "valid") : 
        new Result(false, "invalid");
}