【问题标题】:Select specific items in foreach loop?在 foreach 循环中选择特定项目?
【发布时间】:2014-09-16 07:03:56
【问题描述】:

我有这段代码来获取一些标签:

HttpResponse response = client.execute(method);
InputStream stream = response.getEntity().getContent();
String result = inputestreamToString(stream);
String html = result;
Document doc = Jsoup.parse(html);
Elements mElements = doc.select("div[class^=news-item]");

for (Element e: mElements) 
{
    title = e.text();
    jobtitle.add(title);

    StructNote note = new StructNote();
    note.title = title;
    Notes.add(note);

}

我有 100 个 div,通过这个循环我可以得到所有这些。但我只想得到 20 件物品。

【问题讨论】:

  • 那么我会有一个 int 计数,每次迭代都会增加。当count = 20break跳出循环。

标签: java loops foreach jsoup


【解决方案1】:

您也可以从Guava 使用Iterables#limit

for (Element e : Iterables.limit(mElements, 20)) 
{
    ....
}

【讨论】:

  • 我不能使用Iterables.limit Eclipse说Iterables无法解析
  • 将 Guava JAR 添加到 Eclipse Java 项目的类路径中。
【解决方案2】:

JSOUP - Elements API 为您提供从元素中提取子列表的子列表功能。

你可以使用

 List<Element> subLists = mElements.subList(0,20)

【讨论】:

    【解决方案3】:

    如果你想选择前 20 个元素,那么你可以:

    List<String> subItems = new ArrayList<String>(jobtitle.subList(0, 19));
    List<StructNote> subItems = new ArrayList<StructNote>(Notes.subList(0, 19));
    

    【讨论】:

      猜你喜欢
      • 2014-02-03
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 2017-11-27
      相关资源
      最近更新 更多