【发布时间】:2018-12-20 14:29:53
【问题描述】:
背景:
我正在使用 Selenium 进行一个抓取项目,该项目从我们的测试和生产环境中的网页表中获取数据,然后将数据存储到两个单独的字符串类型的数组列表中(一个用于测试/产品)。数据是数字(双),有 3 列和 13-16 行数据。它有所不同,因为我从超过 145 个国家/地区提取数据,并且每个表都不同。
请不要说这只是一个例子。我在这里展示的代码不是我正在运行的 Selenium 脚本。
问题:
问题出在我试图将我拥有的两个数组列表中的数据转换为两个二维数组时。我以前使用过非常基本的二维数组,但只是根据用户输入创建它们。
根据我之前的研究,ArrayList转为数组的语法是:
ArrayList<String> b = new ArrayList<>();
b.add("1.50");
b.add("3.12");
b.add("5.25%");
b.add("2.16");
b.add("4.36");
b.add("7.76%")
//This is just a snippet, remember the list would have anywhere from 13-16
indices.
String[] x = b.toArray();
但是如何将相同的列表转换为格式为的二维数组
1.50 3.12 5.25%
2.16 4.36 7.76%
每隔三个索引开始一个新行?
【问题讨论】:
-
所以你希望每三个元素都在一个数组中?
-
是的,上面的2行是一个二维数组。
-
而不是将您的列表转换为数组(这可能会导致错误,例如,如果页面上缺少某些内容,您最终可能会在一个不属于一起的数组中拥有数据)我建议抓取数据从页面到适当的数据结构,如
List<String[]>或创建一些成本对象。另请查看 Jsoup(HTML parser),了解从网站获取数据的简单方法。 -
@Eritrean Selenium 是最好的工具,因为网页是动态的。此外,这不是项目的结束。到时候,从列表转换为数组将使下一步更容易。
标签: java arrays loops arraylist