我正在向项目添加搜索功能。输入搜索词后,我的程序会循环遍历html字符串,并将所有出现的单词替换为由span标签包围的搜索词。 replaceAll()方法将替换单词,但它并不完全是我想要的。我不知道如何保持原词的大小写。例如,如果我搜索“ hello”:“ Hello”变为“ hello”,则“ HELLO”变为“ hello”。对于解析html,我正在使用jsoup。

Document doc = Jsoup.parse(content);
Elements elemenets = doc.body().getAllElements();

        for (int i = 1; i < elemenets.size(); i++) {
            String elementText = elemenets.get(i).text();

            if (elementText.toLowerCase().contains(search_term.toLowerCase())) {

                elemenets.get(i).html(elemenets.get(i).html().replaceAll("(?i)" + search_term, "<span id = 'first' style ='background-color:#fbaf5d;'>" + search_term + "</span>"));
            }

        }
String result = doc.toString();

最佳答案

您是否尝试过使用一些正则表达式?
看一下关于同一问题的这个问题
Use Java and RegEx to convert casing in a string

希望对您有帮助

08-19 13:09