java - Why am I getting a StringIndexOutOfBoundsException when I try to replace `\\` with `\`? -
I have to change \\ with \ in Java. The code I'm using
System.out.println (MyConstants.LOCATION_PATH + File.Sseparator + myObject.getStLocation ()) .replaceAll ("\\\\", " \\ ")); But I do not know why this is throwing StringIndexOutOfBoundsException .
It says outside the string index range: 1
What could be the reason for this? I think this is the first argument because replaced all a pattern accepts what could be possible solutions?
Stacktrace
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: string index out Category: 1 on java.lang .String.charAt (String.java.This) at java.util.regex.Matcher.appendReplacement (Matcher.java:696) at java.util.regex.Matcher.replaceAll (Matcher.java): 806) java.lang. On String.replaceAll (String.Java Month 2000) got the answer
The code is required, but I do not know why he removed it here in any case.
One has already been filed in the Java Bug Database. (Thanks for this reference, asalamon.)
yourString.replaceAll ("\\\\", "\\\\"); Surprisingly, the search and the location of the string are identical both :) But still it is necessary for me.
To avoid this using a code, replaceAll instead of Use String.replace :
string origin = MyConstants.LOCATION_PATH + file. Separator + myObject.getStLocation (); System.out.println (original location ("\\", "\\")); Personally I will not do this like this - I have a MyConstants.LOCATION_PATH_FILE Can be created as a file and then you can type:
file location = new file (MyConstants.LOCATION_PATH_FILE, myObject.getStLocation ()); Which will do the right thing correctly.
Comments
Post a Comment