substringBetween()在尝试提取时返回null。

时间:2014-08-15 02:56:19

标签: java apache-stringutils

我正在构建一个小型Java应用程序来获取五个维基百科页面并在html源代码中找到子字符串。我正在使用org.apache.commons.lang3.StringUtils库。然而,维基百科的文章可能很大,而且StringUtils似乎有一个限制:

String html;

try {
    html = Jsoup.connect("http://en.wikipedia.org/wiki/Canada").get().html();
} catch(IOException e) {
    html = "";
}

String trimmedHtml = substringBetween(html, "<html>", "</html>");

System.out.println(html); // prints the whole source code fine
System.out.println(trimmedHtml); // prints null

为什么控制台会为null打印trimmedHtml?输出应该(几乎)与html一样大。字符串输出或substringBetween()的参数是否有最大长度?

1 个答案:

答案 0 :(得分:4)

字符串util方法工作并且经过充分测试 - 此处没有“限制”或“错误”。

查看页面来源会显示<html>不匹配:

<html lang="en" dir="ltr" class="client-nojs">

一般来说,为什么HTML的字符串处理是个好主意的一个很好的例子。继续使用Jsoup提供的支持,在获得&lt; HTML&gt;之后可能会使用html()方法。元件。