Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
391 views
in Technique[技术] by (71.8m points)

java.util.scanner - Problems with Scanner - Java

I'm trying to have the option of reading a string with multiple words, ie. Los Angeles or New York City. Using scanner.next() for "Departure" and "Arrival" would only read the first one if there were two words and split them between variables. nextLine() has not been much luck either. Here's my code:

            System.out.print("
Enter flight number: ");
            int flightNumber = Integer.valueOf(scanner.nextLine());
            System.out.print("
Enter departing city: ");
            String departingCity = scanner.nextLine();
            System.out.print("
Enter arrival city: ");
            String arrivalCity = scanner.nextLine();

I know it's something simple but I haven't figured it out.

Here's the input/output w/ the code above:

Enter flight number: 29

Enter departing city: (immediately it skips to the next line)

Enter arrival city:

---- What I'm really going for ----

Enter flight number: 29

Enter departing City: Los Angeles (be able to type multiple words without it skipping the next input)

Enter arrival city: Kansas City

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Your problem is that next() does not read the carriage return and it gets automatically read by your next next() or nextLine(). Use nextLine() all time and convert input to integer:

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

}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...