Тут я написал на С#. Но так ка мы изучаем Java, то нужно и писать на Java.
Столкнулся со странным моментом, а именно строками:
Изначально, код выглядел так:
т.е. шел вывод
Но на деле выходило:
Начал искать решение в интернете. Нашел:
Java:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Привет! Ответь на вопросы.");
System.out.print("Твое имя? ");
String first_name = in.nextLine();
System.out.print("Твоя фамилия? ");
String last_name = in.nextLine();
System.out.print("Сколько тебе лет? ");
int age = in.nextInt();
in.nextLine();
System.out.print("Откуда ты? ");
String from = in.nextLine();
System.out.print("Кем ты работаешь? ");
String work = in.nextLine();
System.out.println("А теперь я выведу всю информацию о тебе.");
System.out.print("\033[H\033[2J");
System.out.flush();
System.out.println("Твое имя: " + first_name);
System.out.println("Твоя фамилия: " + last_name);
System.out.println("Тебе: " + age + " лет");
System.out.println("Ты из: " + from);
System.out.println("Твоя профессия: " + work);
}
}
Java:
System.out.print("Сколько тебе лет? ");
int age = in.nextInt();
in.nextLine();
Java:
System.out.print("Сколько тебе лет? ");
int age = in.nextInt();
Сколько тебе лет?
на консоль и записи введенных данных в переменную age
. А дальше уже должен был появиться следующий вывод Откуда ты?
.Но на деле выходило:
Сколько тебе лет? Откуда ты?
Начал искать решение в интернете. Нашел:
Поэтому я добавил еще одинПроблема задавалась и была решена на enSO.
Когда вы вводите с клавиатуры число и жмёте на Enter, то Enter добавляет\n
в конец. Проблема в том, что метод Scanner#nextInt не возвращает остаток строки\n
, а считывает только число. Когда вы задаёте Scanner#nextLine, то он считывает этот самый остаток строки -\n
, а следующийnextLine()
уже считает уже именно следующую строку, которую вы хотите получить.
in.nextLine();
.