Java: сканер не распознается при запуске - PullRequest
1 голос
/ 15 октября 2010

Я учусь на первом курсе, изучаю и изучаю в школе. Когда я запускаю его, он игнорирует следующее утверждение:

String Origin = scan.nextLine();

и затем он переходит к следующей строке.

Вот главное:

import java.util.Scanner;

public class FlightTest
{
    public static void main (String [] args)
    {
        Scanner scan = new Scanner (System.in);
        Flight Flight1 = new Flight ();

        System.out.print ("Airline Name: ");
        String AirlineName = scan.nextLine ();

        System.out.print ("Flight Number: ");
        int FlightNumber = scan.nextInt ();

        System.out.print ("Origin: ");
        String Origin = scan.nextLine(); // There is a problem here

        System.out.print ("Destination: ");
        String Destination = scan.nextLine ();
    }   
}

Это класс

public class Flight
{
    private String AirlineName;

    private int FlightNumber;

    private String Origin;

    private String Destination;

    public String setAirlineName()
    {
        String Name = AirlineName;
        return Name;
    }

    public String getAirlineName()
    {
        return AirlineName;
    }

    public int setFlightNumber ()
    {
        int Number = FlightNumber;
        return Number;
    }

    public int getFlightNumber ()
    {
        return FlightNumber;
    }

    public String setOrigin ()
    {
        String Orig = Origin;
        return Orig;
    }

    public String getOrigin ()
    {
        return Origin;
    }

    public String setDestination ()
    {
        String Desti = Destination;
        return Desti;
    }

    public String getDestination ()
    {
        return Destination;
    }

    public String toString ()
    {
        String result = AirlineName + " flight number " 
                 + FlightNumber + " leaves from " + Origin + " to "
                 + Destination + ".";
        return result;
    }
}

Ответы [ 2 ]

2 голосов
/ 15 октября 2010

, поскольку scan.nextInt() не использует всю строку, следующий вызов scan.nextLine() возвращает конец строки, в которой был указан номер рейса, что, вероятно, является просто новой строкой.

Добавитьеще один звонок scan.nextLine()

System.out.print ("Flight Number: ");
int FlightNumber = scan.nextInt ();
scan.nextLine(); // get rid of rest of line

System.out.print ("Origin: ");
String Origin = scan.nextLine();

и я думаю, что все будет работать.

0 голосов
/ 15 октября 2010

и ваш установщик неверен, вы должны передать параметр.

private String airlineName;
public String getAirlineName() {
    return airlineName;
}
public void setAirlineName(String airlineName) {
    this.airlineName = airlineName;
}

Вы можете использовать сеттер, как это

Flight f = new Flight ();

System.out.print ("Airline Name: ");
f.setAirlineName(scan.nextLine ());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...