java - 通过for循环用url链接填充字符串数组

标签 java android arrays jsoup

我需要一点帮助。

我有一个字符串数组(urllinks),我想用 url 链接 填充它,这些链接正在通过 for 循环用 jsoup 解析。

在下面的代码示例中有 2 url,但列表只填充了第一个链接。不知道会解析多少个链接,可以是1个也可以是12个。

public static String[] urllinks;

...

for (int i = 0; i < links.size(); i++) {    // links size = 2  
    String url = doc.select("a").attr("abs:href");
    urllinks[i] = url;

}

如有任何帮助,我们将不胜感激。

提前致谢。

最佳答案

你的问题是因为你调用了attr("abs:href")doc.select("a") 上返回类型为 Elements 的对象这样您总是会获得 javadoc 中所述的第一个匹配项:

Get an attribute value from the first matched element that has the attribute.

您应该像下一步一样迭代:

List<String> urls = new ArrayList<>();
// Iterate over all the links that have an attribute abs:href
for (Element link : doc.select("a[abs:href]")) {
    urls.add(link.attr("abs:href"));
}
urllinks = urls.toArray(new String[urls.size()]);

关于java - 通过for循环用url链接填充字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40223813/

相关文章:

java - 如何为自定义 Jackson Serializer 编写 JUnit 测试?

java - 将部分 FileInputStream 写入 FileOutPutstream

arrays - 将不同长度的数据帧列表转换为数组

java - 在纵向和横向之间翻转时随机生成的单词会发生变化

java - 使用同步对象将函数与多个线程的执行隔离

java - 日志记录和普通文件写入有什么区别?

java - 创建文件名中包含非英文字符的文件

Android 和 iOS 网络应用程序封装在原生应用程序中

android - 如何将 flurry 添加到 android studio 项目中?

arrays - Bash 参数扩展和数组索引操作