ArrayList中作为字符串的JSoup元素与字符串不同?

时间:2015-11-11 13:15:41

标签: java arraylist jsoup

所以我正在使用JSoup遇到的问题是我无法将String和所选元素的文本(通过JSoup)相互比较。条件永远不会返回true。任何人都可以帮助我,因为我现在不会出现什么问题。

我的代码:

public static ArrayList<String> ElementsToArrList(Elements e) {
    ArrayList<String> arrList = new ArrayList<>();
    for (i = 0; i < e.size(); i++) {
        arrList.add(e.get(i).text());
    }
    return arrList;
}

public static void main(String[] args) {

    try {
        doc = Jsoup.connect("http://www.fussballdaten.de/bundesliga/").get();
    } catch (IOException ex) {
        Logger.getLogger(Testingproj.class.getName()).log(Level.SEVERE, null, ex);
    }

    e = doc.select("div#rt_zu_Hause > table > tbody > tr > td.Verein > a[href]");

    ArrayList = ElementsToArrList(e);
    ArrayListx.add(s);

    //first Attempt

    for (i = 0; i < ArrayList.size(); i++) {
        if (ArrayList.get(i).equals(ArrayListx.get(0))) {
            System.out.println("Found! -> " + i);
        } else {
            System.out.println(ArrayList.get(i) + " isn't the same as: " + ArrayListx.get(0));
        }
    }

    System.out.println("----------------------------------------------------------------------------------------");
    //second Attempt

    for (i = 0; i < ArrayList.size(); i++) {
        if (ArrayList.get(i).equals(s)) {
            System.out.println("Found! -> " + i);
        } else {
            System.out.println(ArrayList.get(i) + " isn't the same as: " + s);
        }
    }

}

输出是这样的:

FCBayernMünchen与:Hamburger SV不一样

Borussia Dortmund不同于:Hamburger SV

VfL沃尔夫斯堡不同于:汉堡SV

FC Schalke 04与以下内容不同:汉堡SV

赫塔BSC与汉堡SV

不同

BorussiaMönchengladbach不同于:Hamburger SV

拜耳勒沃库森与汉堡SV不一样

1。 FCKöln不同于:汉堡SV

1。 FSV Mainz 05不同于:Hamburger SV

Eintracht Frankfurt与汉堡SV不一样

SV达姆施塔特98与汉堡SV

不同

VfB斯图加特不一样:汉堡SV

汉堡SV不同于:汉堡SV

FC Ingolstadt 04与以下内容不同:汉堡SV

FC奥格斯堡与汉堡SV不一样

1899年霍芬海姆不同于:汉堡SV

汉诺威96与汉堡SV

不同

SV云达不稳定与汉堡SV不一样

FCBayernMünchen与:Hamburger SV不一样

Borussia Dortmund不同于:Hamburger SV

VfL沃尔夫斯堡不同于:汉堡SV

FC Schalke 04与以下内容不同:汉堡SV

赫塔BSC与汉堡SV

不同

BorussiaMönchengladbach不同于:Hamburger SV

拜耳勒沃库森与汉堡SV不一样

1。 FCKöln不同于:汉堡SV

1。 FSV Mainz 05不同于:Hamburger SV

Eintracht Frankfurt与汉堡SV不一样

SV达姆施塔特98与汉堡SV

不同

VfB斯图加特不一样:汉堡SV

汉堡SV不同于:汉堡SV

FC Ingolstadt 04与以下内容不同:汉堡SV

FC奥格斯堡与汉堡SV不一样

1899年霍芬海姆不同于:汉堡SV

汉诺威96与汉堡SV

不同

SV云达不稳定与汉堡SV不一样

要特别注意大胆的印记:它们表明String“Hamburger SV”实际上是在ArrayList中保存但由于某种原因它并不等于。

我只使用“静态”,因为否则不可能。虽然我在没有静态变量的另一个项目中尝试了类似的代码,但不应该是错误的来源。

我想知道如何解决这个问题,以便我从

返回true
if(ArrayList.get(i).equals(ArrayListx.get(0))){

我的

 if(ArrayList.get(i).equals(s)){

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以看到it(见下文)为Non-breaking space

更改

arrList.add(e.get(i).text());

arrList.add(e.get(i).text().replace("\u00a0", " "));

enter image description here