所以我正在使用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)){
谢谢。
答案 0 :(得分:1)
您可以看到it
(见下文)为Non-breaking space。
更改
arrList.add(e.get(i).text());
到
arrList.add(e.get(i).text().replace("\u00a0", " "));