使用多个单词进行java字符串比较
如何在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;
}
但当您输入“稍微活跃”时,它会将变量activity指定为0.5。我怎样才能让它表明“有些活跃”是一件事
# 1 楼答案
因为在
"somewhat active"
next()
中,将只检索somewhat
作为标记next()
方法最多只能读取空白。默认的分隔符是space
。您可以在您的情况下指定delimeter即.
,它将读取令牌,直到.
出现在输入中,或者更好地使用nextLine
方法# 2 楼答案
当您使用
sc.next()
时,Scanner
类只读取“稍微”的内容,即(只读取到空格或空白)相反,当您使用
sc.nextLine()
时,Scanner
类会将整个字符串读取为“稍微活跃”一般来说,如果你只想读一个单词,可以使用
next();
方法。如果你想读一行(包括空格在内的多个单词),请使用nextLine();
# 3 楼答案
Scanner
上的next()
方法检索下一个标记,默认情况下是空白。lifestyle
变量只包含"somewhat"
将对
next()
的调用替换为对nextLine()
的调用,这将获取该行中的所有单词