2011-02-24 112 views
3

刪除反斜槓我有一個這樣的URL:字符串對象http:\/\/www.example.com\/exampleJava中,字符串對象

有人能告訴我,怎樣去除反斜槓?

我正在爲黑莓系統編程。

回答

7

String.replace(CharSequence, CharSequence)

String myUrl = "http:\\/\\/www.example.com\\/example"; 
myUrl = myUrl.replace("\\",""); 
+0

這是行不通的,它顯示無效字符常量 – Kotibab 2011-02-24 11:54:28

+0

我只是忘了躲避backslahes以允許把它們放在一個String常量(編輯)中。我假設你正在接收的字符串沒有這樣聲明。 – 2011-02-24 11:57:22

+0

@Kevin:這是混淆我不知道爲什麼,但「Kotibab」似乎有「\ /」,它 - 我猜應該用「/」代替。所以 @Kotibab:你可能想嘗試myUrl.replace( 「\」, 「」); (難道是單或雙引號,我不知道,但應該是雙,因爲我把它。) – AudioDroid 2011-02-24 12:00:30

6

@凱文的回答包含一個致命的問題。 String.replace(char, char)用一個字符替換一個字符的出現。它不會刪除字符。

而且''是不是有效的Java因爲有一個空字符沒有這樣的事情。

這裏有一些解決方案,實際上應該工作(和編譯):

String myUrl = "http:\\/\\/www.example.com\\/example"; 
    fixedUrl = myUrl.replace("\\", ""); 

這只是刪除了每個反斜線不考慮上下文。

fixedUrl = myUrl.replace("\\/", "/"); 

這會用普通的正斜槓替換正斜槓。

fixedUrl = myUrl.replaceAll("\\\\(.)", "\\1"); 

此「去逃逸」 在String任何轉義序列,正確處理轉義反斜槓,而不是去除斜槓。該版本使用一組來捕獲反斜槓後面的字符,然後在替換字符串中引用它。

注意的是,在最後的情況下,我們使用的是replaceAll方法,做正則表達式匹配/替換,而不是文字字符串匹配/替換。因此,我們需要在第一個參數中兩次跳過反斜槓;一次是因爲反斜槓必須在字符串文字中轉義,另一種原因是反斜槓必須在正則表達式中轉義,如果您希望反斜槓代表文字反斜槓字符。


我編程爲黑莓系統,如果這是任何關係的。

它。黑莓是J2ME平臺,並String的J2ME版本(見javadoc支持String.replace(char, char),這(正如我們上面提到的)不能刪除字符。在J2ME平臺上,您需要將String加載到StringBuffer中,並使用循環和StringBuffer.delete(...)StringBuffer.replace(...)

(正是這樣的東西,使得Android更易於使用...)

+0

謝謝你的幫助 – Kotibab 2011-02-24 14:14:00

0

試試這個:

return myUrl.replaceAll("\\\\(.)", "\\/"); 
0

只有這對我的作品 -

String url = "http:\/\/imgd2.aeplcdn.com\/310x174\/cw\/cars\/ford\/ford-figo-aspire.jpg"; 

    for(int i = 0; i < url.length(); i++) 
     if(url.charAt(i) == '\\') 
      url = url.substring(0, i) + url.substring(i + 1, url.length());