2015-11-11 43 views
0

所以我正在與JSoup遇到的問題,我無法比較一個字符串和選定的元素(通過JSoup)相互文本的問題。條件永遠不會返回true。任何人都可以幫助我,因爲我現在不會有什麼可能是錯的。作爲字符串ArrayList中的JSoup元素是不是一樣的字符串?

我的代碼:

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); 
     } 
    } 

} 

輸出是這樣的:

拜仁慕尼黑是不一樣的:漢堡

多特蒙德ISN」 t相同:Hamburger SV

沃爾夫斯堡是不一樣的:漢堡

沙爾克04是不一樣的:漢堡

柏林赫塔是不一樣的:漢堡SV

門興格拉德巴赫是不一樣的:漢堡

勒沃庫森是不一樣的:漢堡

科隆足球俱樂部是不一樣的:漢堡

1。FSV茨05是不一樣的:漢堡

法蘭克福是不一樣的:漢堡

SV達姆施塔特98是不一樣的:漢堡

斯圖加特是不一樣的:漢堡

漢堡是不一樣的:漢堡

FC因戈爾施塔特04是不一樣的:漢堡

奧格斯堡是不一樣的:漢堡

霍芬海姆是不一樣的:漢堡

漢諾威96是不一樣的:漢堡

SV不來梅是不一樣的:漢堡


拜仁慕尼黑是不一樣的:漢堡

多特蒙德是不同樣:Hamburger SV

VfL Wolfsburg不一樣:Hamburger SV

沙爾克04是不一樣的:漢堡

柏林赫塔是不一樣的:漢堡

門興格拉德巴赫是不一樣的:漢堡SV

勒沃庫森是不一樣的:漢堡

1. FCKöln不一樣:Hamburger SV

1。FSV茨05是不一樣的:漢堡

法蘭克福是不一樣的:漢堡

SV達姆施塔特98是不一樣的:漢堡

斯圖加特是不一樣的:漢堡

漢堡是不一樣的:漢堡

FC因戈爾施塔特04是不一樣的:漢堡

奧格斯堡是不一樣的:漢堡

霍芬海姆是不一樣的:漢堡

漢諾威96是不一樣的:漢堡

雲達不萊梅是不一樣的:漢堡

要特別注意的大膽outprints:他們顯示字符串「漢堡」 ArrayList中實際持有,但它不等同於某種原因。

我只使用「靜態」,因爲這是不可能的。不應該是錯誤的來源,儘管我在另一個沒有使用靜態變量的項目中嘗試了類似的代碼。

我想知道我可以修復它,使我從我

if(ArrayList.get(i).equals(ArrayListx.get(0))){ 

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

感謝true回報了。

+0

嘗試微調空白:arrList.add(e.get(I)的.text()修剪() ); –

+0

什麼是變量's'? – wero

+0

@wero這是一個字符串,對不起我的錯:) :) – njoye

回答

1

你可以看到it(見下文)是Non-breaking space

變化

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

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

enter image description here

+0

哇謝謝!老實說,我認爲這得到了Netbeans的正確解釋,但它只是它看起來的輸出。謝謝你,這是在磨我的裝備!:) – njoye

+0

祝你好運:) @njoye – Hasanaga

相關問題