Java,删除字符串对象中的反斜杠

时间:2011-02-24 11:46:41

标签: java string blackberry

我在这个字符串对象中有这样的网址: http:\/\/www.example.com\/example

有人可以告诉我,如何去除反斜杠?

我正在为黑莓系统编程。

4 个答案:

答案 0 :(得分:7)

请参阅String.replace(CharSequence, CharSequence)

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

答案 1 :(得分: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方法,而不是文字字符串匹配/替换。因此,我们需要在第一个参数中两次跳过反斜杠;一次因为反斜杠必须在字符串文字中进行转义,一次因为反斜杠必须在正则表达式中转义,如果你希望它代表一个文字反斜杠字符。


  

我正在为黑莓系统编程,如果有任何相关性。

是的。 Blackberry是一个J2ME平台,String的J2ME版本(仅限javadoc 支持String.replace(char, char),它(如上所述)无法删除字符。在J2ME平台上,您需要将String加载到StringBuffer,然后使用循环StringBuffer.delete(...)StringBuffer.replace(...)

(这样的东西让Android更容易使用......)

答案 2 :(得分:0)

试试这个:

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

答案 3 :(得分: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());