replaceAll \ in \\

Status
Nicht offen für weitere Antworten.

Maik20

Mitglied
Hallo,

ich möchte folgendem String fi = "c:\test\text.txt" die "\" in "\\" ersetzen. Folgendes funktioniert leider nicht:

fi.replaceAll("\\","\\\\");

Hier wirft er mir ein:

Exception occurred during event dispatching:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1

Hat jemand eine Idee?
 
wo kommt der string denn her? denn normal geht das ja so nicht..
\t ist doch escape sequence (tab ? )
 
Zuletzt bearbeitet:
Ich würde
[Java]replace("\\", "\\\\")[/Java]
empfehlen. replaceAll verwendet reguläre Ausdrücke - die brauchst du hier nicht wirklich (auch "replace" ersetzt alle Vorkommen von "\\"!). Falls du doch replaceAll verwenden willst, musst du im ersten Argument das \ für das Regex doppelt maskieren:
[Java]replaceAll("\\\\", "\\\\")[/Java]
 
hm..???:L
ich dachte das wäre wie folgt (daher auch oben mein kommentar):

[c]String fi = "c:\lala\lala.txt"[/c] <-- ist garkein gültiger string
[c]String fi = "c:\test\text.txt"[/c] <-- gültiger string, weil ordnername + dateiname (sollen ja wahrscheinlich welche sein), hier mit t beginnen.

das bedeutet doch, dass der string, EIG. garkein "\" mehr enthält, weils doch durch ein tab ersetzt wird, oder nicht? das bedeutet, man kann da so oft die obigen replaces aufrufen wie man will, in dem string gibts doch garkein "\" ??

Java:
String fi = "c:\test\text.txt";
		System.out.println(fi.length());
		char[] fiAsCharArray = fi.toCharArray();
		for (int i = 0; i < fiAsCharArray.length; i++) {
			System.out.print(fiAsCharArray[i]);
		}
 
@eRaaaa
Ich vermute mal, er meinte
[Java]String fi = "c:\test\text.txt"[/Java]
nicht ganz so wörtlich 😉 Sondern eher
[Java]String fi = "c:\\test\\text.txt"[/Java]

Ansonsten hättest du natürlich recht, dass "\t" ein Tab ist.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben