我有一个看起来像这样的HTML
<div class="copy>
<p>First tip</p>
<p><span style="FONT-SIZE:medium"><br/></span></p>
<p>Second Tip</p>
<p> </p>
<p>Third tip</p>
<p> </p>
<p>Fourth tip</p>
</div>
我使用Jsoup提取p元素中的文本并将它们存储在arraylist中。但我不想存储那些没有任何文字的人。我尝试了以下但是它没有用。
Elements tips = doc.select("div.copy > p");
for(Element tip: tips) {
if(tip.text() != "") {
if(tip.text() != " ") {
tipsArray.add(tip.text());
}
}
}
代码不会在arraylist中添加带有br标记的第二个p元素,但它并不适用于&amp; nbsp。我试图在Android的listview中使用arraylist。我也试过在if语句中使用\ u00a而不是&amp; nbsp但是也没有用。还有其他方法可以做到这一点还是我做错了什么?我不知道这个问题是与Java相关还是与Android相关。谢谢你的帮助。
答案 0 :(得分:0)
您应 NOT 使用==
运算符来比较String的值。您必须使用equals
方法:
for(Element tip: tips) {
if(!"".equals(tip.text())) {
if(!" ".equals(tip.text())) {
tipsArray.add(tip.text());
}
}
您还可以确保不添加包含多个
或空格的段落:
if(!"".equals(tip.text().replace(" ", "").trim()))