Mein Code:
Die Ausgabe:
Erwartet Ausgabe:
Was läuft hier falsch? Generell hab ich beobachtet, dass bei String.replaceFirst() und String.replaceAll()
aus den zweiten Parameter entfernt werden.
Ich nutzen Openjdk 1.7 auf Suse Linux 13.1 64-bit.
Gruß,
Tom
Java:
public class Test{
public static void main(String[] args) {
String s = "Hello THIS";
String backsl = "\\";
System.out.println("This is a Backslash: "+backsl);
System.out.println(s.replaceAll("THIS", "you"));
System.out.println(s.replaceAll("THIS", "a"+backsl+"b"));
System.out.println(s.replaceAll("THIS", backsl));
}
}
Code:
This is a Backslash: \
Hello you
Hello ab
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:658)
at java.util.regex.Matcher.appendReplacement(Matcher.java:762)
at java.util.regex.Matcher.replaceAll(Matcher.java:906)
at java.lang.String.replaceAll(String.java:2162)
at Test.main(Test.java:11)
Code:
This is a Backslash: \
Hello you
Hello a\b
Hello \
aus den zweiten Parameter entfernt werden.
Ich nutzen Openjdk 1.7 auf Suse Linux 13.1 64-bit.
Gruß,
Tom