ВОТ

клад:

 1. end 
 2. end of the day or end of the week 
 3. endline
 4. something 
 5. "something" end

Исходя из вышеизложенного, если я пытаюсь заменить одну строку с помощью этого фрагмента, он удаляет соответствующие слова из строки успешно

public class DeleteTest {

    public static void main(String[] args) {

        // TODO Auto-generated method stub
        try {
        File file = new File("C:/Java samples/myfile.txt");
        File temp = File.createTempFile("myfile1", ".txt", file.getParentFile());
        String delete="end";
        BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
        PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp)));

        for (String line; (line = reader.readLine()) != null;) {
            line = line.replaceAll("\\b"+delete+"\\b", "");
       writer.println(line);
        }
        reader.close();
        writer.close();
        }
        catch (Exception e) {
            System.out.println("Something went Wrong");
        }
    }
}

Мой вывод Если я использую приведенный выше фрагмент: (Также мой ожидаемый вывод)

 1.  
 2. of the day or of the week
 3. endline
 4. something
 5. "something"

Но когда я добавляю больше слов для удаления, и для этой цели, когда я использую Set, я использую следующий фрагмент кода:

public static void main(String[] args) {

    // TODO Auto-generated method stub
    try {

    File file = new File("C:/Java samples/myfile.txt");
    File temp = File.createTempFile("myfile1", ".txt", file.getParentFile());
    BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
    PrintWriter writer = new PrintWriter(new OutputStreamWriter(new FileOutputStream(temp)));

        Set<String> toDelete = new HashSet<>();
        toDelete.add("end");
        toDelete.add("something");

    for (String line; (line = reader.readLine()) != null;) {
        line = line.replaceAll("\\b"+toDelete+"\\b", "");
    writer.println(line);
    }
    reader.close();
    writer.close();
    }
    catch (Exception e) {
        System.out.println("Something went Wrong");
    }
}

Я получаю свой вывод как: (Это просто удаляет пространство)

 1. end
 2. endofthedayorendoftheweek
 3. endline
 4. something
 5. "something" end 

Ребята, можете ли вы помочь мне в этом?

Нажмите здесь, чтобы перейти к теме