Фрагмент от лекция с ментор като част от курса на Codegym University. Запишете се за пълния курс.


„Амиго, дойде твоето време. Сега ще ти разкажа за въвеждането от клавиатурата.“

„Използвахме System.out за показване на данни на екрана. За да получим въвеждане, ще използваме System.in .“

— Звучи лесно.

„Но System.in има един недостатък – позволява ни да четем само codeове на символи от клавиатурата. За да заобиколим този проблем и да прочетем големи части от данни наведнъж, ще използваме по-сложна конструкция:“

Пример 1
Въведете низ и число от клавиатурата
InputStream inputStream = System.in;
Reader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

String name = bufferedReader.readLine(); //Read a string from the keyboard
String sAge = bufferedReader.readLine(); //Read a string from the keyboard
int nAge = Integer.parseInt(sAge); //Convert the string to a number.
1
Задача
Java Syntax,  нивоурок
Заключено
Code entry
Sometimes you don't need to think, you just need to hammer it out! As paradoxical as it may seem, sometimes your fingers will "remember" better than your conscious mind. That's why while training at the secret CodeGym center you will sometimes encounter tasks that require you to enter code. By entering code, you get used to the syntax and earn a little dark matter. What's more, you combat laziness.
Пример 2
По-компактна version на предишния пример:
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

String name = reader.readLine();
String sAge = reader.readLine();
int nAge = Integer.parseInt(sAge);
Пример 3
Още по-компактен
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();

"НяHowви въпроси?"

— Ъъъ... нищо не разбрах.

„За да прочетете низ от клавиатурата, най-удобно е да използвате обект BufferedReader . Но за да направите това, трябва да подадете обекта, от който ще четете данни. В този случай System.in .“

„Но System.in и BufferedReader са несъвместими, така че използваме друг адаптер – друг обект InputStreamReader .“

„Мисля, че вече го разбирам. Какъв е този клас Scanner ?“

„Скенерът може да бъде удобен, но не е много полезен. Работата е там, че докато продължавате (Howто в ученето, така и в работата), ще използвате често BufferedReader и InputStreamReader , но Scanner – много рядко. Това е удобно в нашия пример, но в в бъдеще няма да е полезен много често. Така че няма да го използваме много ."

— Изглежда ясно, но не съм сигурен, че разбрах всичко.