Ich muss \\
durch \
in Java ersetzen. Der Code, den ich verwende, istWarum erhalte ich eine StringIndexOutOfBoundsException, wenn ich versuche, `\` durch `` zu ersetzen?
System.out.println((MyConstants.LOCATION_PATH + File.separator + myObject.getStLocation()).replaceAll("\\\\", "\\"));
Aber ich weiß nicht, warum es StringIndexOutOfBoundsException
werfen.
Es sagt String index out of range: 1
Was könnte der Grund sein? Ich denke, das liegt daran, dass das erste Argument replaceAll
ein Muster akzeptiert. Was könnte die mögliche Lösung sein?
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)
Antwort gefunden
asalamon74 den Code habe ich geschrieben erforderlich, aber ich weiß nicht, warum er es gelöscht. In jedem Fall ist es hier.
Es ist ein bug bereits in Javas Bug-Datenbank abgelegt. (Danke für diesen Hinweis, asalamon.)
yourString.replaceAll("\\\\", "\\\\");
Erstaunlicherweise sowohl zum Suchen und Ersetzen-String ist die gleiche :) aber immer noch tut es das, was ich brauche.
Auch sollte es File.separator es ist nicht sein? – Tom
Was ist das Ergebnis der Verkettung der verschiedenen Felder, die Sie haben? – LB40
@LB c: \\ myDoc \\ hell \ o.txt –