Выполненное строковое значение не соответствует жестко закодированному значению - PullRequest
0 голосов
/ 01 марта 2019

В моем классе помощника я извлекаю ключевую строку из файла журнала.Там я ищу дату и подстроку этого текста.Проблема в том, что когда я включаю эту фразу с использованием даты в формате Java, а жестко закодированные действуют по-разному.

Фрагмент кода:

BufferedReader br = new BufferedReader(new FileReader("/developer.log"));
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            sb.append(line);
            line = br.readLine();
        }

      String second = sb.toString();
      String pattern = "yyyy-MM-dd";
      SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern);
      String date = "]"+simpleDateFormat.format(new Date());
      Matcher m2 = Pattern.compile("^(.*)date(.*)$").matcher(second);
            if (m2.find()) {
                String keyPrefix = "Bearer ";
                key = keyPrefix + m2.group(1);
            }
        }
        br.close();
        return key;

Переменная date не возвращает совпадение с шаблоном, но когда я жестко закодировал строку как ]2019-03-01, она работает.В чем может быть проблема здесь?Заранее спасибо.

1 Ответ

0 голосов
/ 01 марта 2019

Вы сопоставляете с фиксированным шаблоном "дата".

Чтобы сопоставить с созданной строкой даты, вы должны создать свой сопоставитель как:

Matcher m2 = Pattern.compile("^(.*)"+date+"(.*)$").matcher(second);
...