# Slash durch zwei Backslash ersetzen



## DieKey (13. Mrz 2012)

Hallo Leute!

Wie kann einen Slash durch Backslashes ersetzen?
Ich meine, wie man einen Slash durch einen Backslash ersetzen kann, weiß ich. Nur durch zwei. Das Brauche ich für eine Pfadangabe, mit der Java dann hinterher arbeiten kann.

LG

DieKey


----------



## njans (13. Mrz 2012)

Hmm ? 
Wenn du weißt, wie du aus / \ machst, dann weißt, dann weißt du auch, wie das umgedreht funktioniert.
replaceAll() verwenden und dann die Argumente vertauschen. Ich gehe mal davon aus, dass du da einen String hast.


----------



## Voltaire81 (13. Mrz 2012)

In aller Kürze..


```
replace("/", "\\\\")
```


----------



## DieKey (13. Mrz 2012)

Richtig! Einen String. Das Problem ist aber doch:
Java erkennt einen backslash erst daran, wenn zwei hinterinander geschrieben werden. Also sprich: \ für Java --> \\!     Schreibe ich bei Replace All also zwei Backslash, ersetzt er den Slash durch eins. Schreibe ich 4 gibt er ne Exception.

Wie kann man das lösen.


----------



## irgendjemand (13. Mrz 2012)

@TO

String.replace("/", "\\\\");

replaceAll erwartet eine RegEx ... replace nicht ... da liegt der unterschied


----------



## Voltaire81 (13. Mrz 2012)

irgendjemand hat gesagt.:


> @TO
> 
> String.replace("/", "\\\\");
> 
> replaceAll erwartet eine RegEx ... replace nicht ... da liegt der unterschied



Vielen Dank, das hatte ich in der Eile vergessen zu erwähnen


----------



## DieKey (13. Mrz 2012)

Dann wird aber nur das erste davon ersetzt oder?  Wenn ich das 100 mal in einem Pfad habe, dann nicht oder?


----------



## irgendjemand (13. Mrz 2012)

Voltaire81 hat gesagt.:


> Vielen Dank, das hatte ich in der Eile vergessen zu erwähnen



du hast ja richtigerweise replace geschrieben ... njans hat den fehler gemacht und replaceAll geschrieben ...

[EDIT]@TO
nein ... replace ersetz auch "alles" ...
wie wäre es wenn du mal die API-doc lesen würdest ? da steht sowas alles drin
[JAPI]String[/JAPI]


			
				API-DOC hat gesagt.:
			
		

> java.lang.String.replace(char, char)
> Returns a new string resulting from replacing all occurrences of oldChar in this string with newChar


bzw


			
				API-DOC hat gesagt.:
			
		

> java.lang.String.replace(CharSequence, CharSequence)
> Replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence


[/EDIT]


----------



## DieKey (13. Mrz 2012)

Wert kann denn so gut englisch ;P :S

Nein OK!

Danke!!!!

EDIT.

Und wo liegt der unterschied zwischen replaceall und replace???


----------



## irgendjemand (13. Mrz 2012)

DieKey hat gesagt.:


> Wer kann denn so gut englisch ;P :S



sollte man können wenn man programmieren lernen will

ps : habe meinen post noch editiert ...


----------



## DieKey (13. Mrz 2012)

Danke

Und wo liegt der unterschied zwischen replaceall und replace???


----------



## irgendjemand (13. Mrz 2012)

DieKey hat gesagt.:


> Danke
> 
> Und wo liegt der unterschied zwischen replaceall und replace???



hatte ich bereits erwähnt

String.replace(char, char) und String.replace(CharSequence, CharSequence) erwarten lediglich genau das zeichen *bzw die zeichenkette* die ersetzt werden soll ...

String.replaceAll(String, String) erwartet einen sog. regulären Ausdruck *kurz : RegEx* ... und das ist etwas anderes ...

denn in einer RegEx steht der normale punkt "." als code-zeichen für "jedes zeichen" ... und nicht für "." ....

das sind so die feinen unterschiede


----------

