【问题标题】:Multi-word scanner input in java?java中的多字扫描仪输入?
【发布时间】:2013-11-22 09:24:36
【问题描述】:

所以我尝试根据用户的输入使用 if-else 语句。当用户的输入只有一个单词时,它可以工作,但是,多个单词输入无法识别并触发 else 语句。我该如何解决这个问题?

导入 java.util.Scanner;

公共类 MyFirstJavaClass {

public static void main(String[] args) { @SuppressWarnings("resource") Scanner myScanner = new Scanner(System.in); String answer; System.out.println("Catch the tiger or run away?"); answer = myScanner.next(); if (answer.equals("Catch the tiger" )) { System.out.println("You've been mauled by a tiger! What were you thinking?"); answer = myScanner.next(); } else { System.out.println("run away"); } } }

【问题讨论】:

    标签: java if-statement user-input java.util.scanner


    【解决方案1】:

    替换:

    answer = myScanner.next();
    

    与:

    answer = myScanner.nextLine();
    

    next 只会读入下一个值,直到它到达一个空格或换行符。您想在进行比较之前阅读整行

    【讨论】:

      【解决方案2】:

      试试这个:

      Scanner scanner = new Scanner(System.in);
      int choice = 0;
      while (scanner.hasNext()){
          if (scanner.hasNextInt()){
              choice = scanner.nextInt();
              break;
          } else {
              scanner.next(); // Just discard this, not interested...
          }
      }
      

      参考: Flush/Clear System.in (stdin) before reading

      【讨论】:

      • 这里怎么来hasNextInt()
      【解决方案3】:

      试试这个

      import java.util.Scanner;
      
      public class MyFirstJavaClass {
      
          public static void main(String[] args) {
              @SuppressWarnings("resource")
              Scanner myScanner = new Scanner(System.in);
              System.out.println("Catch the tiger or run away?");
              if (myScanner.hasNext("Catch the tiger")) {
                  System.out.println("You've been mauled by a tiger! What were you thinking?");
              } else {
                  System.out.println("run away");
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2011-08-23
        • 2013-11-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-30
        • 1970-01-01
        • 2016-06-20
        相关资源
        最近更新 更多