1

我正在构建一个小型 Java 应用程序来获取五个 Wikipedia 页面并在 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?输出应该(几乎)和 for 一样大html。字符串输出或参数是否有最大长度substringBetween()

4

1 回答 1

4

字符串 util 方法有效经过良好测试- 这里没有“限制”或“错误”。

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

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

一个很好的例子说明为什么 HTML 的字符串处理通常不是一个好主意。继续使用 Jsoup 提供的支持,它可能在获取 <HTML> 元素后使用了html()方法。

于 2014-08-15T03:04:41.003 回答