Как получить scan.nextLine(), не пропуская егоJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как получить scan.nextLine(), не пропуская его

Сообщение Anonymous »

Код: Выделить всё

public void readDrinks(File file) throws DrinkReaderException{
try {
Scanner scan = new Scanner(file);
scan.useDelimiter("::");
String name,category;
int price;
boolean premium;
while(scan.hasNextLine()) {
name = "";category = ""; price = -1;
if(scan.hasNext())
name = scan.next();
if(scan.hasNext())
category = scan.next();
if(scan.hasNextInt())
price = scan.nextInt();
if(scan.hasNextBoolean())
premium = scan.nextBoolean();
else
premium = false;
System.out.println(name + category + price + premium);
if(name.isEmpty() || category.isEmpty()) {
System.out.printf("--Skip the item: %s\n");
continue;
}
if(price == -1 ) {
System.out.printf("--Incorrect price skip: %s\n");
continue;
}
readerList.add(new Drink(name,category,price,premium));
}
scan.close();
}
catch(FileNotFoundException e) {
readFileUI();
}
}
Я не уверен, как сделать так, чтобы, если у объекта нет имени или категории, он печатался бы так: "--Пропустить элемент: Iced Coffe::30"
потому что если бы я сделал = scan.nextLine() и затем поместил бы %s в name.isEmpty || Category.isEmpty перейдет с текущей строки на следующую, что приведет к чтению следующей строки scan.next() scan.nextInt() scan.nextBoolean()
это файл из «списка дел», которые мне нужно сделать

Код: Выделить всё

Name::Category::0::true
Espresso::Hot Coffee::35::false
Chocolate Milk Shake::Cool Drink::60::true
Hot Plain Milk::Hot Milk::false
Honey Lemon Iced Tea::Ice Tea::40::false
Double Chocolate Milk Shake::Iced Milk::50::true
Hot Chinese Tea::Hot Tea::30:: false
Iced Caramel Milk::Iced Milk::40
Iced Mocha::Iced Coffee::40::false
Iced Coffee::30
Hot Americano::Hot Coffee::40::false
и это результат, который я надеялся получить
введите здесь описание изображения

Подробнее здесь: https://stackoverflow.com/questions/720 ... kipping-it
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»