Как заставить Сканер выбрать ключевое слово из пользовательского ввода? - PullRequest
0 голосов
/ 24 апреля 2020

Если пользовательский ввод «холодный снаружи», а не просто «холодный», программа перемещается (как и положено) в оператор else. Как заставить его запускать и выбирать ключевые слова, не зная пользовательского ввода?

   System.out.println("I am doing well, thank you!  How's the weather today?");
    String s = scan.nextLine();
        if (s.equalsIgnoreCase("cold") || s.equalsIgnoreCase("freezing")) {
            System.out.println("You'd better bundle up");                
        } else {
           System.out.println("Stay cool");
        }   

Ответы [ 3 ]

0 голосов
/ 24 апреля 2020

Try:

if (s.contains("cold") || s.contains("freezing"))

Здесь contains() метод ищет последовательность символов в строке. Возвращает значение true, если последовательность значений символов найдена.

Примечание: метод equalsIgnoreCase сравнивает две строки на основе содержимого строки независимо от их регистра.

0 голосов
/ 24 апреля 2020

Вам нужно использовать содержит и toLowerCase. Например:

  System.out.println("I am doing well, thank you!  How's the weather today?");
    String s = scan.nextLine();
        if (s.toLowerCase().contains("cold") ||  s.toLowerCase().contains("freezing")) {
            System.out.println("You'd better bundle up");                
        } else {
           System.out.println("Stay cool");
        }   
0 голосов
/ 24 апреля 2020

Вы можете использовать indexOf, чтобы проверить, находятся ли ключевые слова во входных данных следующим образом:

Scanner scan = new Scanner(System.in);
System.out.println("I am doing well, thank you!  How's the weather today?");
String s = scan.nextLine();
if (s.indexOf("cold")>-1 || s.indexOf("freezing")>-1) {
     System.out.println("You'd better bundle up");                
} else {
     System.out.println("Stay cool");
}   
...