Как сканировать файл и отображать сообщение на основе входных данных в java
У меня есть код, который создает текстовый файл на основе ввода пользователем цены и ставит отметку времени.
Я пытаюсь найти способ прочитать файл и распечатать сообщение, если цена отличается от предыдущей на 10% или более.
Например, если в 11 утра во вторник значение равно 50, если в среду значение равно 60, то он напечатает "цена в 11 утра в среду, 30 сентября 2020 года составляет более 10% от предыдущего дня"
Большое спасибо!
Что я уже пробовал:
Тот самый price.txt файл выглядит так:
50 29-09-2020 11:49:54 55 29-09-2020 12:54:41 60 29-09-2020 13:08:16 58 29-09-2020 14:08:21 ... 60 30-09-2020 11:29:34 56 30-09-2020 12:34:21 60.3 30-09-2020 13:48:36 58.1 30-09-2020 14:18:11
Я прочитал досье:
public class ReadFiles { public static void main(String[] args) { try { File readFile = new File("price.txt"); Scanner fileReader = new Scanner(readFile); while (fileReader.hasNextLine()) { String fileContent = fileReader.nextLine(); System.out.println(fileContent); } fileReader.close(); } catch (FileNotFoundException e) { System.out.println("file was not found"); e.printStackTrace(); } } }
Garth J Lancaster
Несколько вопросов
1) вы используете "отличается от того, что было накануне" и "в 11 утра во вторник значение равно 50, если значение равно 60 в среду", но на самом деле не уточняете основу для сравнения .. вы говорите, что в 11:00 утра в среду вы хотите проверить цену 11:00 утра во вторник или "конец дня во вторник".. что произойдет, если во вторник не будет записи на 11:00 утра ?
2) являются ли временные метки в день уникальными- например, для вторника будет только один или ни один из (временной части) 12:34:41 ?
ynjay
Спасибо, что проверили мой вопрос.
1) Да, я хочу проверить цену в 11 утра в среду и сравнить ее с ценой в 11 утра во вторник, каждый день должен иметь запись за каждый час.
2) они не уникальны, поэтому 11:32 и 11:56-оба для 11 часов. Цена проверяется только один раз за каждый час, даже если есть запись 11:59 и 12:01, они все равно разные, 11 и 12 соответственно.