我正在构建一个小型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()
的参数是否有最大长度?
答案 0 :(得分:4)
字符串util方法工作并且经过充分测试 - 此处没有“限制”或“错误”。
查看页面来源会显示<html>
不匹配:
<html lang="en" dir="ltr" class="client-nojs">
一般来说,为什么HTML的字符串处理不是个好主意的一个很好的例子。继续使用Jsoup提供的支持,在获得&lt; HTML&gt;之后可能会使用html()方法。元件。