ynjay Ответов: 1

Как сканировать файл и отображать сообщение на основе входных данных в 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 соответственно.

1 Ответов

Рейтинг:
1

Richard MacCutchan

Поэтому вам просто нужно проверить дату и час, чтобы иметь возможность сравнить различные значения. Используйте Строка (Java Platform SE 7 )[^] методы извлечения различных полей из строк ввода.