我需要改变这样的东西 - > 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
}
我需要做的就是将String中的URL更改为不同的URL。字符串中的Url并不总是http://www.google.com,所以我不能只说replace("http://www.google.com","")
答案 0 :(得分:3)
使用正则表达式:
String oldUrl = text.replaceAll(".*(https?://)www((\\.\\w+)+).*", "www$2");
text = text.replaceAll("(https?://)www(\\.\\w+)+", "$1" + traslateUrl(oldUrl));
注意:代码已更改,以满足以下评论中的额外要求。
答案 1 :(得分: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();
}
答案 2 :(得分: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
}
答案 3 :(得分: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;
}