字符串与多个单词的比较

时间:2015-09-09 18:13:04

标签: java string if-statement comparison

如何在if / then语句中将字符串与多个单词进行比较?我试过这个:

System.out.println("How would you describe your active lifestyle? Sedentary, Somewhat Active, or Active?");
        String lifestyle = sc.next();
        double activity;
        if(lifestyle.equalsIgnoreCase("sedentary"))
            {
                    activity = 0.2;
            }
        else if(lifestyle.equalsIgnoreCase("somewhat active"))
            {
                activity = 0.3;
            }
        else
            {
                activity = 0.5;
            }

但是当你输入“有点活跃”时,它会将变量活动分配给0.5。我怎样才能让它注册“有点活跃”是一件事?

3 个答案:

答案 0 :(得分:4)

next()上的Scanner方法检索下一个标记,默认情况下是空格。 lifestyle变量仅包含"somewhat"

通过拨打next()来取代对nextLine()的来电,这将获得该行的所有字词。

答案 1 :(得分:1)

  

但是当你输入“有点活跃”时,它会分配变量活动   至0.5

因为在"somewhat active" next()中只会检索somewhat作为令牌。 next()方法只能读取空白区域。默认分隔符为space。您可以在您的案例中指定delimeter ie .,它将读取令牌,直到输入中出现.或更好地使用nextLine方法。

Scanner sc = new Scanner(System.in);
sc.useDelimiter("\\.");//provide input as somewhat active.

答案 2 :(得分:1)

当您使用sc.next()时,Scanner课程只会阅读"有些"即(它只读到空白或空白)。

相反,当您使用sc.nextLine()时,Scanner类将读取完整的字符串为"稍微有点活跃"。

通常,如果您只想使用next();方法只读一个单词。如果要读取一行(包括空格的多个单词),请使用nextLine();