java - 从字符串中删除段

标签 java

我正在解析网站上的 HTML 代码,并且即将完成。我有网站上需要的文本部分,但有时 HTMl 中包含一些我希望删除的链接。我正在考虑利用这样一个事实:我不想要的所有元素都以 '<' 开头,当然还有以 '>' 开头。有办法做到这一点吗?这就是我到目前为止所拥有的。

for(int i = 0; i<desc.length();i++)
    {
        if(desc.charAt(i)==('<')){

        }
    }

desc 是我想要修剪的字符串。

最佳答案

手动解析 XML 和 HTML 等标记语言通常被认为是一个坏主意。但是,如果您只是尝试删除所有元素,我可以看到一个简单的脚本可能有用的地方。

我认为值得一提的是,如果删除 HTML 的所有元素,可能会将多段文本挤在一起。查看这段代码,看看是否有帮助。

public class RemoveHtmlElements {

    public static void main(String[] args) {

        String html = "<!DOCTYPE html><html><body><h1>My First Heading</h1>"
                + "<p>My first paragraph.</p></body></html>";

        boolean elementsExist = true;
        while(elementsExist) {
            if(html.contains("<")) {
                int open = html.indexOf("<");
                int closed = html.indexOf(">", open);
                html = html.substring(0, open) + " " + html.substring(closed + 1);
            } else {
                elementsExist = false;
            }
        }

        System.out.println(html);

    }

}

这应该清除 HTML 中任何括号内的元素。它将输入一个空格,并在其中删除一个元素,以防止文本意外地挤在一起。

关于java - 从字符串中删除段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20483908/

相关文章:

java - Servlet 过滤器 url-mapping/* 不适用于 404 错误

java - TreeSet 不能在编译时检查比较器对象吗?

Java-6 到 Java-7 Kerberos - 破坏行为更改 sessionKey 现在 AP-REQ.Authenticator.subkey

java - Java中的socket连接什么时候关闭

java - 从Consumer端创建主题

java - 还有其他更好的方法来获取和比较数据库凭证与java吗?

java - Kafka - 反序列化消费者中的对象

java - 当使用参数化运行器运行时,如何让 JUnit 在运行时忽略特定的测试用例?

java: boolean instanceOf boolean 值?

java - 对于大数使用对数而不是除法?