Hi Leute,
hab ein (find ich) recht merkwürdiges Problem...
Dieses mini Programm wirft mir eine Exception
Wenn ich statt dem file.separator alle Punkte mit zb "," ersetzten möchte, gehts problemlos.. nur eben nicht mit dem Separator... Ich denke mir, da ich das nicht als "" angebe, müsste ich auch nichts escapen, weil ich es (wie ich hoffe) bereits escaped vom System bekomme... oder irre ich mich?
Weiß nich wie das auf Linux aussieht, verwende gerade Win7 mit java7, beide 64 bit.
Hat jemand eine Idee warum das nicht geht?
//Edit:
ganz vergessen, hier die Exception:
//Edit2:
wohl etwas voreilig gepostet, sry...
der bug ist, dass der replacement-String auf $ und \ besonders reagiert... tolle sache... das heißt, wenn man so ein statement platform-übergreifend machen möchte, wäre wohl sowas eine lösung...
aber schon irgendwie komisch, dass nichmal in der Javadoc steht dass eine StringIndexOutOfBounds geworfen werden kann....
naja, hat sich hiermit erledigt
MfG
hab ein (find ich) recht merkwürdiges Problem...
Dieses mini Programm wirft mir eine Exception
Java:
String str = "test.und.gleich.noch.ein.test";
System.out.println(str.replaceAll("[.]", System.getProperty("file.separator")));
Wenn ich statt dem file.separator alle Punkte mit zb "," ersetzten möchte, gehts problemlos.. nur eben nicht mit dem Separator... Ich denke mir, da ich das nicht als "" angebe, müsste ich auch nichts escapen, weil ich es (wie ich hoffe) bereits escaped vom System bekomme... oder irre ich mich?
Weiß nich wie das auf Linux aussieht, verwende gerade Win7 mit java7, beide 64 bit.
Hat jemand eine Idee warum das nicht geht?
//Edit:
ganz vergessen, hier die Exception:
Java:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(Unknown Source)
at java.util.regex.Matcher.appendReplacement(Unknown Source)
at java.util.regex.Matcher.replaceAll(Unknown Source)
at java.lang.String.replaceAll(Unknown Source)
at main.Main.main(Main.java:42)
//Edit2:
wohl etwas voreilig gepostet, sry...
der bug ist, dass der replacement-String auf $ und \ besonders reagiert... tolle sache... das heißt, wenn man so ein statement platform-übergreifend machen möchte, wäre wohl sowas eine lösung...
Java:
String str = "test.und.gleich.noch.ein.test";
System.out.println(str.replaceAll("[.]", System.getProperty("file.separator").replace("\\", "\\\\")));
aber schon irgendwie komisch, dass nichmal in der Javadoc steht dass eine StringIndexOutOfBounds geworfen werden kann....
naja, hat sich hiermit erledigt
MfG
Zuletzt bearbeitet: