Java Jsoup 比较和替换数组列表

标签 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);

        }

    }
}

}

表的 URL:http://www.fidalservizi.it/risultati/Izmir_2014/Gara053.htm

最佳答案

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

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

关于Java Jsoup 比较和替换数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26121811/

相关文章:

Java Lombok log4j 使用不同的appender

java - 批处理文件未在 Windows 8.1 中执行所需的命令

java - 如何创建具有重复数据的 Jsoup.select.Elements?

java - 使用jsoup将html转换为纯文本时如何保留换行符?

java - 仅从网页中抓取特定详细信息

java - 如何获得给定时间下一小时内的随机时间?

java - 使用 HQL 和单独的 IdClass 进行复合键查询

java - org.hibernate.boot.registry.classloading.spi.ClassLoadingException : Unable to load class [CredDataTmplEntry] . ..由 : java. lang.VerifyError 引起

java - 从 Java 更改参数调用 Bash 脚本

java - 使用 JSoup 检索 p 标签之间的所有 html