BufferedReader синхронизирован, поэтому операции чтения в BufferedReader можно безопасно выполнять из нескольких потоков. Можно указать размер буфера или использовать размер по умолчанию (8192). Значение по умолчанию достаточно велико для большинства целей.
readLine()«просто считывает данные построчно из потока или источника. Считается, что строка завершается любым из этих: \n, \r (или) \ r \n
Scanner разбивает входные данные на токены, используя шаблон разделителя, который по умолчанию соответствует пробелу (\s) и распознается Character.isWhitespace.
«Пока пользователь не введет данные, операция сканирования может блокироваться в ожидании ввода. «Используйте Scanner(BUFFER_SIZE = 1024), если вы хотите проанализировать определенный тип токена из потока. «Сканер, однако, не является потокобезопасным. Он должен быть синхронизирован извне.
next() « Находит и возвращает следующий завершенный токен из этого сканера. nextInt() « Сканирует следующий токен входных данных как int .
Код
Stringname=null; int number;
java.io.BufferedReaderin=newBufferedReader(newInputStreamReader(System.in)); name = in.readLine(); // If the user has not entered anything, assume the default value. number = Integer.parseInt(in.readLine()); // It reads only String,and we need to parse it. System.out.println("Name " + name + "\t number " + number);
java.util.Scannersc=newScanner(System.in).useDelimiter("\\s"); name = sc.next(); // It will not leave until the user enters data. number = sc.nextInt(); // We can read specific data. System.out.println("Name " + name + "\t number " + number);
// The Console class is not working in the IDE as expected. java.io.Consolecnsl= System.console(); if (cnsl != null) { // Read a line from the user input. The cursor blinks after the specified input. name = cnsl.readLine("Name: "); System.out.println("Name entered: " + name); }
Проблема с методом input.nextInt() - он считывает только значение int.
Итак, при чтении следующей строки с помощью input.nextLine() вы получаете "\n", то есть Enter ключ. Итак, чтобы пропустить это, вам нужно добавить input.nextLine() .
Попробуйте вот так:
System.out.print("Insert a number: "); intnumber= input.nextInt(); input.nextLine(); // This line you have to add (it consumes the \n character) System.out.print("Text1: "); Stringtext1= input.nextLine(); System.out.print("Text2: "); Stringtext2= input.nextLine();