проблема заключается в том что при считывании данных с клавиатуры с помощью методов класса Scanner, он пропускает строки (Date и Notes). Насколько я понял передается символ '\n' или '\0' конца строки с предыдущего ввода.
public void add() {
Magazine a = new journal();
System.out.println("Add journal");
Scanner sc = new Scanner(System.in);
System.out.println("Titre of journal");
String titre= sc.nextLine();
a.setTitre(titre);
System.out.println("Price journal");
float prix=sc.nextFloat();
a.setPrix(prix);
//ВОТ ЭТУ
System.out.println("Date of Magazine");
date= sc.nextLine();
a.setDate(date);
System.out.println("Category of journal");
int category = sc.nextInt();
a.setCategory(category);
//ВОТ ЭТУ
System.out.println("Notes of journal");
String notes = sc.nextLine();
a.setNotes(notes);
Bibliotheque.GetList().add(a);
}
Всё дело в том, что команды next()
, nextFloat()
и т.д. - они читают только токет, то есть последовательность символов, которые не являются управляющими. Поэтому когда вы пишите nextFloat()
и потом nextLine()
, то Scanner
сначала прочитает Float
, а потом в следующем запросе будет идти до конца строки, которая наступит прямо вот сразу.
Вот так это будет работать:
public void add() {
System.out.println("Add journal");
Scanner sc = new Scanner(System.in);
System.out.println("Titre of journal");
String titre= sc.nextLine();
System.out.println("Price journal");
float prix=sc.nextFloat();
sc.nextLine();
//ВОТ ЭТУ
System.out.println("Date of Magazine");
String date= sc.nextLine();
System.out.println("Category of journal");
int category = sc.nextInt();
sc.nextLine();
//ВОТ ЭТУ
System.out.println("Notes of journal");
String notes = sc.nextLine();
System.out.println(titre);
System.out.println(prix);
System.out.println(date);
System.out.println(category);
System.out.println(notes);
}
Результат:
Add journal
Titre of journal
>> sdflkj sdkfsd sdf
Price journal
>> 123.1
Date of Magazine
>> 12.12.12
Category of journal
>> 2
Notes of journal
>> dsfs fsdf sdf jdskfjksdf
sdflkj sdkfsd sdf
123.1
12.12.12
2
dsfs fsdf sdf jdskfjksdf
Чтобы понять как это лучше работать, я бы советовал вам глянуть исходник функции nextInt(). Он довольно простой, но покажет как это работает.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть ли смысл в таком коде, если тег p и все его содержимое имеет два стиля - text-align:center; color: blue :