使用Scanner和Printwriter类查找和替换文本文件中的单词

时间:2013-04-11 06:16:39

标签: java string java.util.scanner

我正在尝试编写一个程序,可以扫描文本文档并用另一个短语替换指定的单词/字符串/任何内容,特别是使用类Scanner和Printwriter。不幸的是,我在找到正确的使用方法以及如何实现它们方面遇到了一些麻烦。这是我的代码:

class Redaction {

    public static void main(String[] args) throws FileNotFoundException {
        Scanner input = new Scanner(System.in);

        System.out
                .println("Please enter the filename of the sensitive     information");
        String f = input.next();
        System.out.println("Please input what text you want 'lost'");
        String o = input.next();
        System.out
                .println("Please input what you want the new, improved filename to be called");
        String n = input.next();

        File sensitiveDocument = new File(f);
        if (!sensitiveDocument.exists()) {

            System.out.println("File does not exist.");

            System.exit(0);

        }

        Scanner in = new Scanner(sensitiveDocument);
        in.useDelimiter("[^A-Za-z]+");
        PrintWriter out = new PrintWriter(n);

        while (in.hasNext()) {
            if (in.hasNext(o)) {
                // ...
            }
        }

        in.close();
        out.close();
    }
}

此时我很丢失。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

首先阅读PrintWriterScanner文档,以确定要使用的方法。

Pseodo代码:

  1. 逐行获取(或逐字逐句,取决于您要删除的内容)。
  2. 查找要删除的字符串
  3. 如果字符串包含要删除的内容,请将其删除。
  4. 将字符串打印到文件中。

答案 1 :(得分:0)

最简单但效率不高的算法是将文件内容读入字符串变量。之后,您可以使用String Tokenizer查找并替换您想要的单词,并将该变量的内容重写回文件。