Devo sostituire \\
con \
in Java. Il codice che sto usando èPerché ottengo una stringa StringIndexOutOfBoundsException quando provo a sostituire `\` con ``?
System.out.println((MyConstants.LOCATION_PATH + File.separator + myObject.getStLocation()).replaceAll("\\\\", "\\"));
Ma io non so perché si sta gettando StringIndexOutOfBoundsException
.
Dice String index out of range: 1
Quale potrebbe essere il motivo? Immagino sia perché il primo argomento replaceAll
accetta un pattern. Quale potrebbe essere la possibile soluzione?
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)
risposta Trovato
asalamon74 postato il codice che ho richiesto, ma non so perché lo ha cancellato. In ogni caso eccolo qui.
C'è uno bug già archiviato nel database dei bug di Java. (Grazie per questo riferimento, asalamon.)
yourString.replaceAll("\\\\", "\\\\");
Sorprendentemente, sia di ricerca e sostituzione di stringa sono gli stessi :) ma ancora fa quello che ho bisogno.
Inoltre, dovrebbe essere File.separator isnt esso? – Tom
Qual è il risultato della concatenazione dei vari campi che hai? – LB40
c: \\ myDoc \\ hell \ o.txt –