如何在Arraylist中添加元素之前丢弃具有不间断空格的元素

时间:2014-09-02 09:14:14

标签: java android jsoup

我有一个看起来像这样的HTML

<div class="copy>
  <p>First tip</p>
  <p><span style="FONT-SIZE:medium"><br/></span></p>
  <p>Second Tip</p>
  <p>&nbsp;</p>
  <p>Third tip</p>
  <p>&nbsp;</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() != "&nbsp;") {
                tipsArray.add(tip.text());
            }
        }

    }

代码不会在arraylist中添加带有br标记的第二个p元素,但它并不适用于&amp; nbsp。我试图在Android的listview中使用arraylist。我也试过在if语句中使用\ u00a而不是&amp; nbsp但是也没有用。还有其他方法可以做到这一点还是我做错了什么?我不知道这个问题是与Java相关还是与Android相关。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

您应 NOT 使用==运算符来比较String的值。您必须使用equals方法:

for(Element tip: tips) {
        if(!"".equals(tip.text())) {
            if(!"&nbsp;".equals(tip.text())) {
                tipsArray.add(tip.text());
            }
        }

您还可以确保不添加包含多个&nbsp;或空格的段落:

if(!"".equals(tip.text().replace("&nbsp;", "").trim()))

另请看这里:How do I compare strings in Java