URL解析程序不会停止循环

时间:2014-10-08 05:05:16

标签: java

要求:

  1. 我需要接受一个字符串作为参数
  2. 打印出它找到的第一个链接
  3. 返回一个整数,它是链接End的索引,如果是,则返回-1 没有找到链接。
  4. if语句,如果找不到" href"在字符串中它将返回整数,一个if语句在substring方法不会使索引超出边界错误之前返回-1。

    显示需要返回字符串中的所有http网站。

    我相信我非常接近,这是我的代码:

    public class LinkList {
    
    public static void main(String[] args) {
        String htmlCode = (a long string with all my url links)
    
    
        int linkStart = 0;
        int endLink = 0;
        while (true) {
            linkStart = hrefSearch(htmlCode);
            if(linkStart == -1) break;
            htmlCode = htmlCode.substring(linkStart);
        } 
    
    } 
    
    public static int hrefSearch (String inStr) {
    
        String find = " href=";
        String closingBracket = ">";
    
    
         int index = inStr.indexOf(find);
    
         if (index != -1){
            int closing = inStr.indexOf(closingBracket, index);
    
         if (closing != -1){
            System.out.println(inStr.substring (index, closing + 1));
    
            }
    }
        return index;
    }} 
    

    如何让程序停止循环并显示字符串中的所有网址?

1 个答案:

答案 0 :(得分:0)

变化:

htmlCode = htmlCode.substring(linkStart);

为:

htmlCode = htmlCode.substring(linkStart+1);

否则,您将一遍又一遍地查找第一个网址(因为linkStart是上一个网址开始的位置,因此htmlCode.substring(linkStart)仍然包含您找到的上一个网址。