1

我需要像这样更改一些东西->Hello, go here http://www.google.com for your ... 获取链接,并以我制作的方法更改它,然后将其替换回这样的字符串

->Hello, go here http://www.yahoo.com for your...

这是我到目前为止所拥有的:

if(Text.toLowerCase().contains("http://"))
{
    // Do stuff                 
}
else if(Text.toLowerCase().contains("https://"))
{
   // Do stuff                  
}

我需要做的就是将字符串中的 URL 更改为不同的内容。字符串中的 Url 并不总是http://www.google.com,所以我不能只说replace("http://www.google.com","")

4

4 回答 4

3

使用正则表达式:

String oldUrl = text.replaceAll(".*(https?://)www((\\.\\w+)+).*", "www$2");

text = text.replaceAll("(https?://)www(\\.\\w+)+", "$1" + traslateUrl(oldUrl));

注意:代码已更改以满足下面评论中的额外要求。

于 2013-10-13T12:25:21.520 回答
0

您可以使用以下代码从字符串中获取链接。我假设该字符串将仅包含 .com 域

            String input = "Hello, go here http://www.google.com";
        Pattern pattern = Pattern.compile("http[s]{0,1}://www.[a-z-]*.com");
        Matcher m = pattern.matcher(input);
        while (m.find()) {
            String str = m.group();
        }
于 2013-10-13T12:23:18.590 回答
0

您是否尝试过类似的方法:

s= s.replaceFirst("http:.+[ ]", new link);

这将找到以 http 开头的任何单词,直到第一个空格,并将其替换为您想要的任何单词

如果你想保留链接,那么你可以这样做:

String oldURL;
if (s.contains("http")) {
    String[] words = s.split(" ");
    for (String word: words) {
        if (word.contains("http")) {
            oldURL = word;  
            break;
        }
    }
    //then replace the url or whatever
}
于 2013-10-13T12:41:39.953 回答
0

你可以试试这个

private String removeUrl(String commentstr)
    {
        String urlPattern = "((https?|ftp|gopher|telnet|file|Unsure|http):((//)|(\\\\))+[\\w\\d:#@%/;$()~_?\\+-=\\\\\\.&]*)";
        Pattern p = Pattern.compile(urlPattern,Pattern.CASE_INSENSITIVE);
        Matcher m = p.matcher(commentstr);
        int i = 0;
        while (m.find()) {
            commentstr = commentstr.replaceAll(m.group(i),"").trim();
            i++;
        }
        return commentstr;
    }
于 2019-02-07T06:44:06.060 回答