2014-07-18 144 views
0

我只想替换所有以“http”开头并以空格或“\ n”结尾的单词字符串删除字符串中以“http”开头的所有单词吗?

示例字符串为。

以下全部结果;

http://www.google.com/abc.jpg是一个图像的网址。

或一段时间谈到像https://www.youtube.com/watch?v=9Xwhatever这是一个示例文本

结果字符串应该是这样

是图像的URL。谈到这样的

或一段时间是一个示例文本

我只是想用“”来取代它;我知道逻辑但不知道这个功能。

我的逻辑是

string.startwith("http","\n")// starts with http and ends on next line or space 

.replaceAll("") 

回答

1
public static void main(String[] args) { 
    String s = "https://www.google.com/abc.jpg is a url of an image."; 
    System.out.println(s.replaceAll("https?://.*?\\s+", "")); 

} 

O/P:

is a url of an image. 
+0

,或者如果它的开头是https,我必须以https再次调用它,或有其它方法 – Nepster

+0

@Nepster - 固定它.. :)。现在它适用于您忘记编辑的'http'和'https' – TheLostMind

+0

。它仍然是相同的 – Nepster

1

String.replaceAll()允许您使用正则表达式。在正则表达式中,^允许您捕获字符串的开头。因此,你可以做这样的:

System.out.print("http://google-http".replaceAll("^http", "")); 

结果:

://google-http 

http之初已被删除,但不是一个结尾。

1
public static void main(String[] args) { 
    String str = "https://www.google.com/abc.jpg is a url of an image."; 
    String subStr1 = "http://"; 
    String substr2 = "https://"; 
    String foundStr = ""; 
    if(str.startsWith(subStr1)) { 
     foundStr = subStr1; 
    } 
    if (str.startsWith(subStr2)) { 
     foundStr = subStr2; 
    } 
     str = str.replaceAll(foundStr, ""); 
     str = str.replaceAll(" ", ""); 
} 
+0

它只会取代http。我想删除完整路径@TheLostMind答案是正确的。但我必须通过http调用它两次,第二次用https调用它 – Nepster

+0

此代码将正确执行,如果您需要简化此代码,则可以使用元素“http://”和“https://”创建一个数组。然后使用数组搜索功能,可以检查给定字符串中是否存在子字符串。如果发现用空字符替换该字符串。 –

+0

你没有得到我。我的问题是要取代一开始就可能没有的完整单词。请参阅http://www.tutorialspoint.com/java/java_string_startswith.htm。我的http url可能位于字符串的中间。但是你的代码搜索是否以它开头。 – Nepster

相关问题