Java Jsoup比较&取代arraylist

时间:2014-09-30 13:14:49

标签: java jsoup

对于不清楚的解释我真的很抱歉。

我需要比较两个列表。列表A包含[A],[B],[C],列表B包含[B],[C]。 现在,我想检查循环,如果列表A包含列表B中的字母/单词。如果是,则从列表A中删除它们。

这是我的代码。我使用jsoup lib从url解析表,但url包含需要删除的单词。像国家,年龄等...

我试图制作一个新列表,其中包含我想删除的单词,但它没有用。救命? :(

        Scanner s = new Scanner(System.in);

    while (true) {
        System.out.println("URL: ");
        String url = s.nextLine();

        Document doc = Jsoup.connect(url).get();

        /*Setting*/
        Document.OutputSettings settings = doc.outputSettings();
        settings.prettyPrint(false);
        settings.escapeMode(Entities.EscapeMode.extended);
        settings.charset("ASCII");

        String modifiedFileHtmlStr = doc.html();

        List<String> tabList = new ArrayList<>();
        for (Element table : doc.select("table:eq(1)")) {
            System.getProperty("line.separator");
            for (Element row : doc.select("tr:gt(0)").not("td#t1_ckrs.td_fine")) {
                tabList.add(row.text());
            }
        }

        String row = "";
        for (int i = 0; i < tabList.size(); i++) {
            row = tabList.get(i);
            System.out.println(row);

        }

    }
}

}

表格的网址:http://www.fidalservizi.it/risultati/Izmir_2014/Gara053.htm

1 个答案:

答案 0 :(得分:1)

根据我对您的代码段和评论的理解,我认为这可能满足您的需求。

public static void main(String[] args) throws IOException {

Document doc = Jsoup.connect("http://www.fidalservizi.it/risultati/Izmir_2014/Gara053.htm").get();

Elements table = doc.select("tr:gt(0)").not("td#t1_ckrs.td_fine");
for (Element row : table) {

  if (isDataRow(row)) {
    System.out.print(" Pos :" + row.getElementById("t1_clas").text());
    System.out.print(" Name :" + row.getElementById("t1_atle").text());
    System.out.println(" Country " + row.getElementById("t1_soci").text());
  }
 }
}

private static boolean isDataRow(Element row){
  Elements elements = row.select("tr.due");
  elements.addAll(row.select("tr.uno"));
  return !elements.isEmpty() && !elements.text().equalsIgnoreCase("");
}

打印

Pos :1 Name :CHEVAUX Christophe Country  FRA FRANCE
Pos :  Name :European Champion Country  
Pos :2 Name :VAN DER PUTTEN Marijn Country  NED NETHERLANDS
Pos :3 Name :BAGHIROV Faig Country  AZE AZERBAIJAN
Pos :4 Name :DIEGO Miguel Angel Country  ESP SPAIN
Pos :5 Name :CAMBRIA Giuseppe Country  ITA ITALY
Pos :6 Name :YILMAZ Ozgur Country  TUR TURKEY
Pos :7 Name :MAFTEI Nelu Vasilica Country  ROU ROMANIA