Как заменить "\" на "\\" в Java - PullRequest
       5

Как заменить "\" на "\\" в Java

11 голосов
/ 24 сентября 2011

Я пытался разбить строку на массивы и заменить \ на \\, но не смог, также я попробовал String.replaceAll что-то подобное ("\","\\");. Я хочу указать путь к JNI, и он читается только таким образом. Может кто-нибудь помочь мне в этом, пожалуйста. Спасибо.

Ответы [ 3 ]

26 голосов
/ 24 сентября 2011

Не используйте String.replaceAll в этом случае - это указано в терминах регулярных выражений, что означает, что вам потребуется еще больше экранирования. Это должно быть хорошо:

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

Обратите внимание, что обратная косая черта удваивается из-за наличия строковых литералов Java - поэтому здесь используются фактические строки "одиночная обратная косая черта" и "двойная обратная косая черта", а не двойная и четверная.

replace работает с простыми строками - без регулярных выражений.

2 голосов
/ 24 сентября 2012

Вы можете использовать replaceAll:

String escaped = original.replaceAll("\\\\", "\\\\\\\\");
1 голос
/ 24 сентября 2011

Я хочу указать путь к JNI, и он будет читать только таким образом.

Это неправильно.Вам нужны только двойные обратные слеши в литеральных строках, которые вы объявляете на языке программирования.Вам никогда не придется делать эту замену во время выполнения.Вам нужно переосмыслить, почему вы это делаете.

...