解析java字符串中的锚标记

解析java字符串中的锚标记,java,html,parsing,arraylist,Java,Html,Parsing,Arraylist,我正在创建一个网络爬虫,我只是读取一个页面的html,并将其存储到一个字符串中。然后,我在html中找到了所有的锚标记,并将它们存储到一个名为anchorTags的ArrayList中。我现在需要了解数组列表中每个字符串的“a href=”部分。为此,我编写了以下代码;然而,出于某种原因,我得到了一个边界外的异常。请注意,我只需要使用循环、ArrayList执行此操作: ArrayList<String> parsedLinks = new ArrayList<String&g

我正在创建一个网络爬虫,我只是读取一个页面的html,并将其存储到一个字符串中。然后,我在html中找到了所有的锚标记,并将它们存储到一个名为anchorTags的ArrayList中。我现在需要了解数组列表中每个字符串的“a href=”部分。为此,我编写了以下代码;然而,出于某种原因,我得到了一个边界外的异常。请注意,我只需要使用循环、ArrayList执行此操作:

ArrayList<String> parsedLinks = new ArrayList<String>();
    String storeHTML = "";

    for(int i = 0; i < anchorTags.size(); i++) {
        String anchorTag = anchorTags.get(i);
        int hrefIndex = anchorTag.indexOf("a href=");

        if (hrefIndex > -1) {



            int beginQuote = anchorTag.indexOf("\"", hrefIndex);

            int EndQuote = anchorTag.indexOf("\"", beginQuote +1);

            if (EndQuote > beginQuote) {
                storeHTML.substring(beginQuote +1, EndQuote);

            }


        }
    }
    parsedLinks.add(storeHTML);
    System.out.println(parsedLinks);
    return parsedLinks;


}
ArrayList parsedLinks=new ArrayList();
字符串storeHTML=“”;
对于(int i=0;i-1){
int beginQuote=anchorTag.indexOf(“\”,hrefIndex);
int EndQuote=anchorTag.indexOf(“\”,beginQuote+1);
如果(EndQuote>beginQuote){
子字符串(beginQuote+1,EndQuote);
}
}
}
add(storeHTML);
System.out.println(解析链接);
返回解析链接;
}
不应该

storeHTML.substring(beginQuote+1,EndQuote)


storeHTML=anchorTag.substring(beginQuote+1,EndQuote)

“我遇到一个边界外异常”异常将准确地告诉您出了什么问题。假设您已经看过了,但仍然感到困惑,您不认为发布异常以帮助他人帮助您很重要吗?异常是:线程“main”java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:66位于java.lang.String.子字符串(未知源代码)位于WebCrawler.WebCrawler.linkParser(WebCrawler.java:127)位于WebCrawler.WebCrawler.main(WebCrawler.java:28)好的开始:代码中的行号在哪里?127是我创建子字符串的地方。28是我在main方法中引用返回值的地方。是的!我知道我做错了什么。谢谢!这会打印出我的原始字符串,但结果保留了锚定标记,并且不删除任何内容。您需要显示一些示例输入,预期输出put和实际输出。我没有将其添加到循环中的数组中!感谢您的帮助!