Java i/o在隐藏特定单词的同时读取文本

Java i/o在隐藏特定单词的同时读取文本,java,io,bufferedreader,name-hiding,Java,Io,Bufferedreader,Name Hiding,在每次出现单词SECRET时,您将如何阅读下面的文本? 全文如下: 这条线有一个秘密的字 这条线没有一个 这句话有两个秘密的字 这条线没有 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; public class BufferedReadertest { public static void main(St

在每次出现单词SECRET时,您将如何阅读下面的文本? 全文如下:

这条线有一个秘密的字

这条线没有一个

这句话有两个秘密的字

这条线没有

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

public class BufferedReadertest {

    public static void main(String[] args) {

        ArrayList <String>list = new ArrayList<>();


        BufferedReader br = null;

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("secretwords.txt"));

            while ((sCurrentLine = br.readLine()) != null) {
                list.add(sCurrentLine);

                }

            for (int i = 0; i < list.size(); i++) {

                System.out.println(list.get(i));
            }



        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }

    }
}
导入java.io.BufferedReader;
导入java.io.FileReader;
导入java.io.IOException;
导入java.util.ArrayList;
公共类BufferedReadertest{
公共静态void main(字符串[]args){
ArrayList=新建ArrayList();
BufferedReader br=null;
试一试{
弦电流线;
br=新的BufferedReader(新的文件阅读器(“secretwords.txt”);
而((sCurrentLine=br.readLine())!=null){
列表。添加(当前行);
}
对于(int i=0;i
你是说喜欢吗

System.out.println(list.get(i).replaceAll("SECRET", "******");

我觉得有必要使用ArrayList。替换
SECRET
并在迭代缓冲读取器时打印消息

public static void main(String[] args) {

        BufferedReader br = null;

        try {

            String sCurrentLine;

            br = new BufferedReader(new FileReader("secretwords.txt"));

            while ((sCurrentLine = br.readLine()) != null) {
                System.out.println(sCurrentLine.replaceAll("SECRET", ""));

            }

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null)br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
  }

还不够清楚。如果性能不是问题(更具体地说是在内存中加载整个字符串),请尝试更具体地对结果字符串进行替换?如果找到“secret”一词,您将如何删除整个段落。例如:如果在一个段落中有4行,并且找到了“secret”一词,则应删除整个段落。@在包含“secret”一词的段落或句子?段落中。您需要在StringReader的每次迭代中将文本存储到StringBuilder中。一旦遇到空行,您将检查StringBuilder的内容并有条件地显示。
if(line.indexOf("SECRET") > -1){
   System.out.println("Has Secret");
   continue;
}