开发者

How can I replace \ with / in Java?

I tried with following regex, but it didn't work.

myString.replaceAll("\", "/");

Exception:

java.util.regex.PatternSyntaxException: Unexpected internal error near index 1 \ ^ at java.util.regex.Pattern.error(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.util.regex.Pattern.(Unknown Source) at java.util.regex.Pattern.compile(Unknown Source) at java.lang.开发者_StackOverflow社区String.replaceAll(Unknown Source)


Your code should not even compile.

"\" escapes the " so that the string continues. Writing String h = "\"hello\""; makes the string h contain "hello".

If we change then change it to it to "\\" (escaping the backslash) we run into another problem. The regular expression then tries to escape the next character. For example writing "\\d+" is a valid regular expression (matching digits).


In you case however you do not need regular expressions at all. Just use the replace(char, char) method of the string, it replaces all characters.

myString.replace('\\', '/');

By the way, if you are replacing paths, you should look at File.separator to get the systems path separator character.


Sometimes you need 4 slashes, because backslash is an escape character for regex as well. Try

myString.replaceAll("\\\\", "/");
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜