Boolean.valueOf()的良好用法

时间:2014-10-14 18:47:51

标签: java boolean value-of

我对Boolean.valueOf(String)的使用有疑问。在我的代码中,用户将通过输入truefalse来回答问题。然后字符串应转换为boolean

public String setCorrespondingAuthor ()
{
    String respons = "true";
    do
    {
        System.out.print("Is s/he the corresponding author? (true/false)");
        respons = sc.next();
        sc.nextLine();
    } while (!respons.equalsIgnoreCase("true")
            && !respons.equalsIgnoreCase("false"));
    boolean flag = Boolean.valueOf(respons);
    if (!flag)
    {
        return "not the corresponding author";
    }
    return "the corresponding author";
}

现在,它运作正常。问题是在输出中,它会在处理之前提示两次。

1 个答案:

答案 0 :(得分:1)

问题是您要从用户输入中读取两次:sc.next()sc.nextLine()。您只应阅读一次并将该值存储在respons变量中。

您还应该考虑在字符串文字(例如equalsIgnoreCase"true")上调用"false"而不调用变量,因为变量可能是null,导致{ {1}}。

NullPointerException