Tengo que reemplazar \\
con \
en Java. El código que estoy utilizando es¿Por qué recibo StringIndexOutOfBoundsException cuando trato de reemplazar `\` con ``?
System.out.println((MyConstants.LOCATION_PATH + File.separator + myObject.getStLocation()).replaceAll("\\\\", "\\"));
Pero no sé por qué se está lanzando StringIndexOutOfBoundsException
.
Dice String index out of range: 1
Cuál podría ser la razón? Supongo que es porque el primer argumento replaceAll
acepta un patrón. ¿Cuál podría ser la posible solución?
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)
respuesta encontrado
asalamon74 publicado el código que necesitaba, pero no sé por qué se borró. En cualquier caso aquí está.
Hay un bug ya archivado en la base de datos de errores de Java. (Gracias por esta referencia, asalamon.)
yourString.replaceAll("\\\\", "\\\\");
Sorprendentemente, tanto de buscar y reemplazar cadena son los mismos :) pero todavía lo hace lo que requiero.
Además, cabe File.separator no creen? – Tom
¿Cuál es el resultado de la concatenación de los diversos campos que tiene? – LB40
@LB c: \\ myDoc \\ hell \ o.txt –