2014-10-08 67 views
-3

要求:URL解析程序不停止循环

  1. 我需要接受一个字符串作为参数
  2. 打印出的第一个链接就找到
  3. 返回一个整数,是链接的指数End或-1如果 找不到链接。

如果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; 
}} 

我怎样才能得到我的程序停止循环,并显示在我的字符串的所有网址?

+3

您应该先阅读帮助中心。你的问题主体和标题有很多噪音,但没有真正的问题。 – 2014-10-08 05:06:22

+0

你的代码产生了什么输出?什么不行? – Eran 2014-10-08 05:08:03

+0

不会''href =“'更合适吗? – MadProgrammer 2014-10-08 05:08:08

回答

0

变化:

htmlCode = htmlCode.substring(linkStart); 

到:

htmlCode = htmlCode.substring(linkStart+1); 

否则,你会继续一遍又一遍找到第一个URL(因为linkStart就是以前的URL开始的位置,所以htmlCode.substring(linkStart)仍然包含您找到的以前的网址)。

+0

我一直在敲着我的头对着键盘的东西那么小。 – 2014-10-08 05:21:04

+0

@jc不客气! – Eran 2014-10-08 05:22:10

+0

我将在另一个程序中发布另一个问题。你能帮我解决吗? – 2014-10-08 05:23:59