Scanner的问题 - Java

tim*_*tim 3 java java.util.scanner

我正在尝试读取包含多个单词的字符串,即.洛杉矶或纽约市.对于"离开"和"到达"使用scanner.next()只读取第一个如果有两个单词并在变量之间拆分它们.nextLine()也没有太大的运气.这是我的代码:

            System.out.print("\nEnter flight number: ");
            int flightNumber = Integer.valueOf(scanner.nextLine());
            System.out.print("\nEnter departing city: ");
            String departingCity = scanner.nextLine();
            System.out.print("\nEnter arrival city: ");
            String arrivalCity = scanner.nextLine();
Run Code Online (Sandbox Code Playgroud)

我知道这很简单,但我还没弄清楚.

这是输入/输出w /上面的代码:

输入航班号:29

输入离境城市:(立即跳到下一行)

进入抵达城市:

----我真正想要的是什么----

输入航班号:29

进入离开城市:洛杉矶(能够输入多个单词而不跳过下一个输入)

进入抵达城市:堪萨斯城

Edw*_*rzo 6

你的问题是next()没有读取回车符,它会被你的下一个next()或nextLine()自动读取.始终使用nextLine()并将输入转换为整数:

public static void main(String[] args) throws Exception {
    Scanner scanner = new Scanner(System.in);
    System.out.print("\nEnter flight number: ");
    int flightNumber = Integer.valueOf(scanner.nextLine());
    System.out.print("\nEnter departing city: ");
    String departingCity = scanner.nextLine();
    System.out.print("\nEnter arrival city: ");
    String arrivalCity = scanner.nextLine();

}
Run Code Online (Sandbox Code Playgroud)