Я должен заменить \\
на \
в Java. Я использую код
System.out.println( (MyConstants.LOCATION_PATH + File.separator + myObject.getStLocation() ).replaceAll("\\\\", "\\") );
Но я не знаю, почему это бросает StringIndexOutOfBoundsException
.
Там написано String index out of range: 1
В чем может быть причина? Я думаю, это потому, что первый аргумент replaceAll
принимает шаблон. Какое может быть возможное решение?
StackTrace
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:558)
at java.util.regex.Matcher.appendReplacement(Matcher.java:696)
at java.util.regex.Matcher.replaceAll(Matcher.java:806)
at java.lang.String.replaceAll(String.java:2000)
Ответ найден
asalamon74 опубликовал нужный мне код, но я не знаю, почему он его удалил. В любом случае вот оно.
В базе данных ошибок Java уже зарегистрирована ошибка . (Спасибо за эту ссылку, асаламон.)
yourString.replaceAll("\\\\", "\\\\");
Удивительно, но и поиск и замена строки одинаковы :), но все равно он делает то, что мне нужно.