我在这个字符串对象中有这样的网址: http:\/\/www.example.com\/example
。
有人可以告诉我,如何去除反斜杠?
我正在为黑莓系统编程。
答案 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());