我在这里所做的就是获取下表的内容并将它们存储在名为 tableElems
的列表中
0 1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16 17
18 19 20 21 22 23 24 25 26
27 28 29 30 31 32 33 34 35
List<WebElement> tableElems = chrome.findElements(By.tagName("td"));
从这个表中,我想以从第 4 个元素(表中的#3)开始的模式进行打印,并且我想打印 3 个元素,然后跳过接下来的 6 个元素,打印接下来的 3 个元素,然后跳过接下来的 6 个元素,等等等等
所以我的预期输出将是 3 4 5 12 13 14 21 22 23 30 31 32
我最初的尝试结束了
for (int i = 3; i<tableElems.size(); i++) {
if(i % 3 == 0) { System.out.println(tableElems.get(i).getText()); }
else if(i % 4 == 0) { System.out.println(tableElems.get(i).getText()); }
else if(i % 5 == 0) { System.out.println(tableElems.get(i).getText()); }
}
显然这是错误的,因为我的 %3
将打印第 9 个元素,%4
将打印第 16 个元素,依此类推。
我无法理解这个问题,所以任何为我指明正确方向的建议都是值得赞赏的!
最佳答案
试试这个:
for (int i = 3; i<tableElems.size(); i++) {
if (((i / 3) % 3) == 1) { System.out.println(tableElems.get(i).getText()); }
}
将其想象为分成九个一组,并进一步将每组 9 个分成 3 个组。在第二组 3 个(即 3-5、12-14)上它将显示。
关于java - 从 Java 中的列表打印模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37951510/