有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Jsoup提取字符串

我试图通过使用Jsoup库在网站html页面中获取一些名称表单class属性,问题是我使用getElementsByClass("name")按类获取元素,并将其存储到字符串变量中 结果是“迈克·安德罗·罗伯斯·班克斯、玛丽亚·杰拉尔多·路易斯……等等”。 但我想要的是分离各个名称并将它们存储到数组中。 以下是代码片段:

public String processText(String htmlPage) {

    Document html = Jsoup.parse(htmlPage);
    String names = html.body().getElementsByClass("name").text();
    return names;
}

更多信息:

源页面是一个html页面,我将完整的html代码保存在一个字符串中,然后处理该字符串以仅提取class="name"下的元素

我要传递给processText方法的htmlPage与以下类似:

<div class="name"> Rob Kardashian </div> </div> </a> </div> <div class="channelListEntry"> <a href="/zayn_malik"> <div class="image"> <img src="http://cdn.posh24.com/images/:profile/014cf47ca44daf8f44a3e0720929ee327" alt="Zayn Malik"/> </div> <div class="info"> <div class="status-container"> <div class="position">4</div> <div class="img pos"></div> <div class="value">+12</div> </div> <div class="name"> Zayn Malik </div> </div> </a> </div> <div class="channelListEntry"> <a href="/kanye_west"> <div class="image"> <img src="http://cdn.posh24.com/images/:profile/03f352f71ffab135cd81821eb190d4832" alt="Kanye West"/> </div> <div class="info"> <div class="status-container"> <div class="position">5</div> <div class="img pos"></div> <div class="value">+16</div> </div> <div class="name"> Kanye West </div> </div> </a> </div> <div class="channelListEntry"> <a href="/kendall_jenner"> <div class="image"> <img src="http://cdn.posh24.com/images/:profile/066d5c02547c4357f1bc5f633c68f4085" alt="Kendall Jenner"/> </div>

共 (1) 个答案

  1. # 1 楼答案

    您可以简单地使用split函数从字符串中获取数组

    String arr[]=names.trim().split("\\s");
    

    另外,如果名称之间有空格和制表符,则使用

      String arr[]=names.split("\\s+");
    

    更新:

          ArrayList<String>  name=new ArrayList<String>();
          for (Element output: html.body().getElementsByClass("name")) {
              name.add(output.text());
              }
    

    example link

    输出:

    enter image description here

    link to convert list to array