2014-09-11 4 views
0

Здесь пока кусок кодасравнение строки с пользователем формы ввода. Java

System.out.println("How would you describe your lifestyle? Sedentary, Somewhat Active, Active, Highly Active?"); 
    String lifestyle = keyboard.next(); 
if (lifestyle.equalsIgnoreCase("Somewhat Active")) 
{ 
    System.out.println("ok"); 
} 
else 
{ 
    System.out.println("not ok") 
} 

независимо от того, что я типа не могу получить «OK» ответ.

ответ

3

Scanner#next() всегда будет возвращать следующий токен, который будет просто «несколько». Вместо этого используйте keyboard.nextLine().

+0

но как «несколько» .equalsIgnoreCase («несколько активен») вернет ли он true? –

+1

@JunedAhsan Нет, две строки не равны. «someWHAT eQuAL» было бы приемлемо при таком сравнении. В настоящее время OP использует 'next()', который возвращает только «несколько», что, конечно же, не будет сравниваться по назначению. – hexafraction

0

Вы должны попробовать nextLine(), как предложено гексафракцией.

String lifestyle = keyboard.next(); //<-- input without space, Somewhat 
String lifestyle = keyboard.nextLine(); //<-- input with spaces, Somewhat Active 
Смежные вопросы