Java-ввод nextLine после другого nextLine - PullRequest
0 голосов
/ 08 декабря 2018

Код:

public void addTest(int idUser) throws IOException {

    String date = null;
    String tec = null;

    System.out.println("Enter name for test file :");
    String file = input.next(); //Name of file

    System.out.println("Enter date formatted as dd/mm/yyyy hh:mm :");
    date = input.nextLine(); //String 2 parts
    input.next();

    System.out.println("Enter technician name :");
    tec = input.nextLine(); // String 2+ parts
    input.next();

    String path = "C:\\Test\\Sample\\" + file;
    String chain = readFile(path);

    ClinicalTest test = new ClinicalTest(chain, date, idUser, tec);
    System.out.println(test.getDate()+"\n" + test.getTec());

    createTest(test);
}

При вводе даты 12-12-2018 13: 45 и имени tec Марк Зус , пытается создать тест терпит неудачу.sysout показывает только 13: 45 .

enter image description here

Я пытался input.next() под каждым nextLine(), потому что если я неНикогда не позволяйте мне заполнять поле даты.

enter image description here

Это то, что происходит, если использовать только nextLine() для каждой записи

1 Ответ

0 голосов
/ 08 декабря 2018

Я предлагаю вам прочитать JavaDoc , что полезно при использовании методов.Как написано выше, метод nextLine():

Этот метод возвращает остаток текущей строки, исключая любой разделитель строк в конце.Позиция установлена ​​в начале следующей строки.

Это означает, что при использовании метода next() вы читаете первую часть вашего ввода, а затем, когда вы используете nextLine(), он захватываетостаток строки, который * 13: 45 во входной выборке.

Так что вам не нужно input.next().Следующий код отлично работает:

public static void main(String[] args){
    Scanner input = new Scanner(System.in);

    String date = null;
    String tec = null;

    System.out.println("Enter name for test file :");
    String file = input.nextLine();

    System.out.println("Enter date formatted as dd/mm/yyyy hh:mm :");
    date = input.nextLine(); //String 2 parts

    System.out.println("Enter technician name :");
    tec = input.nextLine(); // String 2+ parts
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...