Есть такой фрагмент кода, направленный на то, что бы элемент записывался только в том случае, если такой же строки нету в текстовом файле
for (WebElement i: elements) {
x = 0;
while (sc.hasNextLine()) {
if ((i.getText().substring(0, 30).replaceAll("\n", "").equals(sc.nextLine())) && (i.getText().length() >= 30)) {
x = 1
break
}
}
if ((x == 0) && (i.getText().length() > 30)) {
writer.write("\n${i.getText().substring(0, 30).replaceAll("\n", "")}");
}
}
но он не работает, и все элементы в любом случае записываются. Укажите пожалуйста на проблему)
Вы на первом же элементе добегаете до конца файла, а потом на следующих итерациях у Вас sc.hasNextLine() == false и поиск по файлу не выполняется совсем.
Отдельный вопрос - зачем для каждого элемента читать весь файл?
// Строки файла
Set<String> lines = new HashSet<>();
// Читаем единоразово файл
while (sc.hasNextLine())
lines.add(sc.nextLine());
// цикл по элементам
for (WebElement i : elements) {
// получаем строковое представление
String str = i.getText();
if (str.length() > 30)) {
// преобразовываем строку
str = str.substring(0, 30).replaceAll("\n", "");
// если такой строки нет в считанных строках файла, то записываем
if (!lines.contains(str))
writer.write("\n${str}");
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости