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

Kot*_*bab 3 java string blackberry

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

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

我正在为黑莓系统编程.

Kev*_*din 7

请参见String.replace(CharSequence,CharSequence)

String myUrl = "http:\\/\\/www.example.com\\/example";
myUrl = myUrl.replace("\\","");
Run Code Online (Sandbox Code Playgroud)

  • @Kevin,我认为你的意思是`myUrl.replace("\\ /","/");`或`myUrl.replace("\\","");`因为没有空字符这样的东西.;) (3认同)

Ste*_*n C 6

@Kevin的答案包含一个致命的问题.的String.replace(char, char)内容替换出现另一个字符一个字符.它不会删除字符.

''没有有效的Java因为有一个空字符没有这样的事情.

以下是一些应该实际工作的解决方案(并编译!):

    String myUrl = "http:\\/\\/www.example.com\\/example";
    fixedUrl = myUrl.replace("\\", "");
Run Code Online (Sandbox Code Playgroud)

这只是删除每个反斜杠而不考虑上下文.

    fixedUrl = myUrl.replace("\\/", "/");
Run Code Online (Sandbox Code Playgroud)

这将使用普通的正斜杠替换转义的正斜杠.

    fixedUrl = myUrl.replaceAll("\\\\(.)", "\\1");
Run Code Online (Sandbox Code Playgroud)

这将" 解除"String中的任何转义序列,正确处理转义的反斜杠,而不是删除尾部反斜杠.此版本使用组在反斜杠后捕获字符,然后在替换字符串中引用它.

请注意,在最后一种情况下,我们使用的replaceAll是执行正则表达式匹配/替换的方法,而不是文字字符串匹配/替换.因此,我们需要在第一个参数中两次跳过反斜杠; 一次因为必须在字符串文字中转义反斜杠,并且因为必须在正则表达式中转义反斜杠,如果您希望它代表字面反斜杠字符.


我正在为黑莓系统编程,以防任何相关性.

它是.Blackberry是一个J2ME平台,而J2ME版本String(参见javadoc)支持String.replace(char, char),其中(如上所述)无法删除字符.在J2ME平台上,您需要加载String到a StringBuffer,并使用循环和StringBuffer.delete(...)StringBuffer.replace(...).

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