Java 如何使用Jsoup在没有额外字符的情况下获取href链接?

Java 如何使用Jsoup在没有额外字符的情况下获取href链接?,java,jsoup,Java,Jsoup,我有一个元素列表,我正在使用jsoup的方法attr()获取href属性。 以下是我的部分代码: String searchTerm = "tutorial+programming+"+i_SearchPhrase; int num = 10; String searchURL = GOOGLE_SEARCH_URL + "?q="+searchTerm+"&num="+num; Document doc = Jsoup.connect(searchURL

我有一个元素列表,我正在使用jsoup的方法attr()获取href属性。 以下是我的部分代码:

    String searchTerm = "tutorial+programming+"+i_SearchPhrase;
    int num = 10;
    String searchURL = GOOGLE_SEARCH_URL + "?q="+searchTerm+"&num="+num;
    Document doc = Jsoup.connect(searchURL).userAgent("chrome/5.0").get();   
    Elements results = doc.select("h3.r > a");
    String linkHref;

    for (Element result : results) {
        linkHref = result.attr("href").replace("/url?q=","");
        //some more unrelated code...
        }
例如,当我使用search prase“test”时,attr(“href”)生成(列表中的第一个):

linkHref=

我只想:

解决这个问题的最佳方法是什么?我只是在linkHref上添加了一些字符串操作(我知道怎么做),还是有办法让href属性包含开头的较短链接?
高级

谢谢您如果您总是想删除
查询
参数,您可以使用
String.indexOf()
例如

int lastPos;
if(linkHref.indexOf("?") > 0) {
   lastPos = linkHref.indexOf("?");
} else if (linkHref.indexOf("&") > 0){
   lastPos = linkHref.indexOf("&");
}
else lastPos = -1;

if(lastPos != -1)
linkHref = linkHref.subsring(0, lastPos);

如果您知道您的链接将始终采用上述格式,则可以使用String的
lastIndexOf()
方法查找最后一个正斜杠,并从该索引中删除所有字符。@patrick hainge我不确定最后一个斜杠后面的字符是什么意思或它们来自何处,因此,我不知道其他链接是否总是在上面format@Atalia.d我更新了我的答案。您可以检查任何字符的第一个索引,在这种情况下,它是
&
,因为我不知道这些额外字符的含义,我可以确保它总是采用相同的格式吗?i、 e.是否只有“?”和“&”我应该担心?@Atalia.d这些是查询参数。他们总是这样开始的。