繁体   English   中英

使用.children()。get(22)OutOfBoundsException时的Jsoup

[英]Jsoup when using .children().get(22) OutOfBoundsException

我想从菜单中选择42项,当我通过22时,将打印42元素,但它显示出outofboundsException。 帮帮我。

Elements links3 = doc.select("menu#zz18_ViewSelectorMenu");
        for (Element link : links3) {
        System.out.println("\nlink : " + link.children().get(22).attr("onMenuClick"));
        }

我有这个例外:

FATAL EXCEPTION: Thread-5150
java.lang.IndexOutOfBoundsException: Invalid index 22, size is 22 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:251)
at java.util.ArrayList.get(ArrayList.java:304)
at org.jsoup.select.Elements.get(Elements.java:544)
at com.example.projet1.wsActivity$1.run(wsActivity.java:117)
at java.lang.Thread.run(Thread.java:856)

无效的索引22,大小为22

...告诉您ArrayList的大小为22 ,因此您可以使用的最大索引为21 List的索引是从0开始的,因此如果列表中有22个项目,则它们的索引是021

因此,为了完整ArrayList使用大小为5的ArrayList

  • 0-第一次进入
  • 1秒
  • 2-第三
  • 3-第四
  • 4-最后

如果需要最后一个元素,请使用get(21)

arraylist的大小为22(arralylist索引从0开始)

 for (Element link : links3) {
        System.out.println("\nlink : " + link.children().get(21).attr("onMenuClick"));
        }

这是捕获IndexOutofBounds异常的好习惯

它只有22个元素

 Elements elements = doc.select("menu#EE18_ViewSelectorMenu");
                Elements menuelements =elements.get(0).children();
                for (int i = 0; i < menuelements.size(); i++) {
                    String required = menuelements.get(i)
                            .attr("onMenuClick");
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM