Мне нужно заменить \\
на \
на 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 разместил код, который мне нужен, но я не знаю, почему он его удалил. В любом случае это так.
Существует bug, уже зарегистрированный в базе данных ошибок Java. (Спасибо за эту ссылку, асаламон.)
yourString.replaceAll("\\\\", "\\\\");
Удивительно, что строка поиска и замены одинакова:), но все же она делает то, что мне нужно.