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();
}
}
Я не уверен, как это сделать, чтобы, если у файла нет имени или категории, программа напечатала что-то вроде --Skip the item: Iced Coffe::30< /code>.
Потому что, если бы я сделал = 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
Это желаемый результат:
File containing drinks: Drink.txt
Try again! Cannot find the file Drink.txt
File containing drinks: src/Drink.txt
--Incorrect price skip: Hot Plain Milk::Hot Milk::false
--Skip the item: Iced Coffee::30
Подробнее здесь: https://stackoverflow.com/questions/720 ... t-skipping
Как получить scan.nextLine() без пропуска ⇐ JAVA
Программисты JAVA общаются здесь
1732868872
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();
}
}
Я не уверен, как это сделать, чтобы, если у файла нет имени или категории, программа напечатала что-то вроде --Skip the item: Iced Coffe::30< /code>.
Потому что, если бы я сделал = 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
Это желаемый результат:
File containing drinks: Drink.txt
Try again! Cannot find the file Drink.txt
File containing drinks: src/Drink.txt
--Incorrect price skip: Hot Plain Milk::Hot Milk::false
--Skip the item: Iced Coffee::30
Подробнее здесь: [url]https://stackoverflow.com/questions/72066638/how-to-get-the-scan-nextline-without-skipping[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия