Search code examples
javaregexstringbackslash

How to replace " \ " with " \\ " in java


I tried to break the string into arrays and replace \ with \\ , but couldn't do it, also I tried String.replaceAll something like this ("\","\\");.

I want to supply a path to JNI and it reads only in this way.


Solution

  • Don't use String.replaceAll in this case - that's specified in terms of regular expressions, which means you'd need even more escaping. This should be fine:

    String escaped = original.replace("\\", "\\\\");
    

    Note that the backslashes are doubled due to being in Java string literals - so the actual strings involved here are "single backslash" and "double backslash" - not double and quadruple.

    replace works on simple strings - no regexes involved.