【问题标题】:Matching words in a list against a stringarray in java将列表中的单词与java中的字符串数组匹配
【发布时间】:2015-10-14 10:29:28
【问题描述】:

我需要查找并替换用户给出的单词列表。 我的应用程序在 HTML 文件中逐行读取,我想验证列表中是否有单词并将其替换为空格。 这是我到目前为止所拥有的,但我认为我必须修改我的洞代码才能得到我想要的。

    private static void PrintFile(File source) throws IOException {
    String s;
    FileReader fr = new FileReader(source);
    @SuppressWarnings("resource")
    BufferedReader br = new BufferedReader(fr);

    @SuppressWarnings("resource")
    PrintWriter pw = new PrintWriter("Results.txt");
    while ((s=br.readLine())!=null) {
        pw.println(s.replaceAll(" ", "") //Words to be replaced.
                .replaceAll("<br>", "")
                .replaceAll("&amp;", "")
                .replaceAll("</p>", "")
                .replaceAll("</body>","")
                .replaceAll("</html>", "")
                .replaceAll("<remote object=\"#DEFAULT\">&gt;", ""));
    }
    System.out.println("Done!");
}

我接受任何建议,列表想法可能不是最佳选择。

【问题讨论】:

    标签: java arrays string list replace


    【解决方案1】:

    因为String.replaceAll(String regex, String replacement) 将正则表达式作为其第一个参数,所以我建议使用String.replace(CharSequence, CharSequence replacement) 来避免出现不良行为。

    除此之外,我在您的代码中看不到大问题。

    【讨论】:

      【解决方案2】:

      如果您不介意将apache commons lang 包含到您的项目中,您可以使用StringUtils.replaceEach 并完成它。

      【讨论】:

        【解决方案3】:

        您可以使用Jsoup 像这样简单地删除 HTML 标记:

        public static String html2text(String html) {
          return Jsoup.parse(html).text();
        }
        

        还可以查看 Cleaner and Whitelist 以单独清理文档。

        【讨论】:

        • 谢谢,Jsoup 帮了很多忙,事实上,我通过过滤我的 html 文件解析后需要的单词来改进 mi 解决方案。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多