"/" in "\" umwandeln

Status
Nicht offen für weitere Antworten.

Persuader

Mitglied
Habe heute Fragen über Fragen...

Ich habe einen String, welcher einen Baclslash ("\") enthält und möchte diesen Backslash in einen normalen Slash ("/") umwandeln. Gibt es dazu irgend eine spezielle funktion?
 

dex

Mitglied
ich weiß es nicht 100% aber es gibt eine replace() Methode

ungefähr so
Code:
String s1 = deinstring
String s2 = replace( ‘\’, ‘/’ );
 

meez

Top Contributor
Du must \ maskieren...

Ab 1.4 gibts auch noch die replacAll Methode:

Code:
 String s1 = deinstring
String s2 = s1.replaceAll("‘\\", "/" );
 

Grizzly

Top Contributor
meez hat gesagt.:
Du must \ maskieren...

Ab 1.4 gibts auch noch die replacAll Methode:

Code:
 String s1 = deinstring
String s2 = s1.replaceAll("‘\\", "/" );

Es müsste
Code:
String windowsPfad = "C:\\Programme\\MeinProgramm";
String unixPfad = windowsPfad.replaceAll("\\\\", "/");
lauten. replaceAll arbeitet nämlich mit regexp. Und da braucht man ein \\ für ein \. Um aber in Java in einem String ein \\ hinzubekommen, braucht man ein \\\\. :)
 
L

Louis2

Gast
Um das ganze mal wieder aufzugreifen:
Code:
String s1 = "C:\Pfad\Ordner\";
String s2 = s1.replaceAll ("\", "/");

geht nicht.
Code:
String s2 = s1.replaceAll ("\\", "/");
geht auch nicht, da ich nur 1 \ habe. Müssen nun immer 2 \ angegeben werden im Pfad???
 

Sky

Top Contributor
Code:
String s1 = "C:\\Pfad\\Ordner\\";
String s2 = s1.replaceAll ("\\\\", "/");
 
L

Louis2

Gast
Achso, heißt es müssen doch immer 2 "\\" angegeben werden? Ist ja irgendwie dumm...
 
L

Louis2

Gast
sky80 hat gesagt.:
Bist Du Dir sicher, dass Du den Code 1:1 kopiert und bei dir eingefügt hast???

Ich meine was anderes, habe eine .ini und dort können Parameter u.a auch Pfade angegeben werden.
Nun sagen wir mal, ich kopiere aus Windoof Explorer ein Link, dieser Link ist wie folgt aufgebaut C:\Pfad\Ordner\

also
Code:
String logname = "C:\Pfad\Ordner\";

So nun kann es Java nicht interpretieren, also muss ich die "\" ind "/" umwandeln.
Code:
String newlogname = logname.replaceAll("\", "/");

Wie man es jetzt oben sehen kann, geht das umwandeln von einem "\" in "/" nicht, sondern nur "\\" in "/".

D.h ich soll mein Pfad in der .ini in "C:\\Pfad\\Ordner\\" umwandeln, und das finde ich etwas dumm... :wink:
 

Sky

Top Contributor
In der .ini kann es mit einem '\' stehen und Java kann damit unter Windows sehr gut umgehen!
 
L

Louis2

Gast
Und woher kommen im Beispiel oben die 2 "\\" ?
Code:
String s1 = "C:\\Pfad\\Ordner\\"; 
String s2 = s1.replaceAll ("\\\\", "/");
?

Ich hole mir mit .getProperty den Wert aus der .ini und speichere ihn in einem String, sieht also so aus:
Code:
String logname = "C:\Pfad\Ordner\";

Wie kriege ich jetzt doppelte "\" hin? Das ist ja mein Problem...
 

Bert Brenner

Bekanntes Mitglied
Wenn du etwas machst wie:
String s1 = "C:\\Pfad\\Ordner\\";

Dann enthällt der String s1 "C:\Pfad\Ordner\"

weil ein Backslash maskiert werden muss.
 
L

Louis2

Gast
Bert Brenner hat gesagt.:
Wenn du etwas machst wie:
String s1 = "C:\\Pfad\\Ordner\\";

Dann enthällt der String s1 "C:\Pfad\Ordner\"

weil ein Backslash maskiert werden muss.

Aber der String aus der .ini den ich kriege sieht "C:\Pfad\Ordner\"; so aus.
Nun muss ich jedes mal noch 1 "\" hinzufügen und wie geht das?
 

messi

Bekanntes Mitglied
Louis2 hat gesagt.:
Aber der String aus der .ini den ich kriege sieht "C:\Pfad\Ordner\"; so aus.
Nun muss ich jedes mal noch 1 "\" hinzufügen und wie geht das?
Der Backslash ( \ ) hat nur im Java-Quelltext eine besondere Bedeutung. Wenn du eine externe Quelle für Strings hast, dann brauchst du eigentlich den Backslash nicht doppelt angeben. Es sei denn, die externe Quelle wird wie der Quelltext vor dem Einlesen noch ge'parse't, was aber bei .ini-Dateien nicht der Fall ist.

Im Übrigen geht es -wie schon erwähnt- wesentlich schneller, wenn du String.replace(char, char) benutzt, da du nur ein einzelnes Zeichen durch ein anderes ersetzt:
Code:
String unixpfad = dosPfadVonINIDatei.replace('\\', '/');
 
L

Louis2

Gast
@messi: Ah... ok da kriege ich schonmal was raus, aber wenn ich den String "unixpfad" ausgebe, dann erscheint
Code:
C:PfadOrdner

Also irgendwie gibt es bei der Umwandlung von "\" nach "/" Probleme?

Die .ini ist wie folgt aufgebaut:
Code:
[EmailClient]
.
.
LogLocation=C:\Pfad\Ordner
 
L

Louis2

Gast
Scheinbar ist es für Euch auch ein Rätsel wieso die \ bei der Umwandlung (s. oben) verschwinden und durch / ersetzt werden? ;-) Seltsam... kann das keiner erklären?
 

The_S

Top Contributor
Hab mir das ganze jetzt mal durchgelesen. Wenn es wirklich nur das hier ist

Persuader hat gesagt.:
Habe heute Fragen über Fragen...

Ich habe einen String, welcher einen Baclslash ("\") enthält und möchte diesen Backslash in einen normalen Slash ("/") umwandeln. Gibt es dazu irgend eine spezielle funktion?

Dann verstehe ich den ganzen wirrwarr nicht. Wurde doch schon zig mal erklärt.

Du siehst bei der Ausgabe des Strings nur einen Backslash, in Java stehen dort aber 2 Backslashes, nachdem ein Backslash maskiert ist.

Code:
str2 = str1.replace('\\', '/');

Das heißt nicht, dass du nach 2 Backslashes suchst, sondern nur nach einem ganz normalen. Aber da du einen Backslash wie gesagt maskieren musst, musst du zwei Backslashes eingeben.

Ich weiß, ich wiederhol nur alles, was schon da war, aber so funktioniert es 100pro! Ein kleines Beweisprogramm:

Code:
public class test {
	
	public static void main(String[] args) {
		
		String str1 = "C:\\pfad\\unterpfad\\datei"; // So sieht dein String aus
		System.out.println(str1); // Wie du siehst, wird bei der Ausgabe nur ein \ angezeigt, obwohl der String zwei \ in Java enthält
		String str2 = str1.replace('\\', '/'); // Jeder \ wird durch ein / ersetzt
		System.out.println(str2); // Und alles hat funktioniert ...
	}
}
 
L

Louis2

Gast
Also anscheinend mag .getProperty() die \ nicht und deshalb werden sie gelöscht wenn man mit .getProperty() was aus einer Datei holt. Wenn man aber 2 \ in der Datei im Pfad angibt, und dann .replace('\\','/') ausführt, dann wird der Pfad richtig angezeigt, nur mit einem \ geht es nicht, da werden alle gelöscht (s. oben).

Tja wenn es nicht anders geht als 2 \ im Pfad anzugeben, habe ich mich entschieden gleich in der Datei die Pfade mit / anzugeben, punkt :wink:
 

Peter@Pan

Aktives Mitglied
Ich habe im Moment auch das Problem das ich in einem String ein "\" durch ein "/" ersetzen muss.

Der String der aus einer Datei ausgelesen wird dient später als eine Pfad angabe.
Irgendwo in der Datei steht als zum Beispiel "C:\send".
String.replace("\\","/") funktioniert nicht weil der der String nunmal "C:\send" ist und nicht "C:\\senden" :!:
String.replace("\","/") funktioniert auch nicht da \ ja ein geschütztes Zeichen ist. Gib es irgendeine Möglichkeit das Problem zu lösen?
 

Bert Brenner

Bekanntes Mitglied
String.replace("\\","/") sollte doch gehen.

Ein in String:
String aString = "c:\\Hallo";
enthällt folgende Zeichen: "c:\Hallo" der erste Backslah ist nur zum Maskieren.
 

norman

Top Contributor
Das Problem liegt wo anders, glaube ich

in datei.txt steht z.B.:
C:\Hallo

wenn du in java in einen String den Inhalt von datei.txt speichern willst, enthält der String:
C:Hallo
 

Peter@Pan

Aktives Mitglied
Bert Brenner hat gesagt.:
String.replace("\\","/") sollte doch gehen.
String aString = "c:\\Hallo";
quote]

Und genau hier liegt das Problem der String besteht in diesem Fall aus c:\hallo und nicht aus c:\\hallo.

Erstellt ihr euch nocht mal ne File in der c:\hallo steht.
Versucht dann die Zeile auszulesen und macht dann auf den String replaceAll("\\","/");
 
R

Roar

Gast
norman hat gesagt.:
Das Problem liegt wo anders, glaube ich

in datei.txt steht z.B.:
C:\Hallo

wenn du in java in einen String den Inhalt von datei.txt speichern willst, enthält der String:
C:Hallo

nö, im String steht natürlich auch C:\Hallo
 

Peter@Pan

Aktives Mitglied
norman hat gesagt.:
.....
wenn du in java in einen String den Inhalt von datei.txt speichern willst, enthält der String:
C:Hallo

Nein das geht schon (es steht wirklich C:\... drin - die Properties Klasse entfernt scheinbar beim Einlesen alle \ aus einem String - vielleicht meinst du das). Hab das Problem inzwischen so gelöst das ich jede Zeile einlese - den String in ein CharArray verwandel und dann in dem Array nach \ suche um es gegen / zu tauschen.
 

Sky

Top Contributor
Hier zwei Varianten, die funktionieren:

Code:
    String s= getPathFromFile();
    System.out.println(s); // Ausgabe= C:\send

    // 1. Variante:
    s=s.replace('\\', '/');
    System.out.println(s); // Ausgabe= C:/send

    // 2. Variante:
    s=s.replaceAll("\\\\", "/");
    System.out.println(s); // Ausgabe= C:/send
 

mischer

Aktives Mitglied
Hi,

lass dir doch mal den ursprünglichen String ausgeben, direkt nachdem er aus der Datei gelesen ist. Wenn da die Backslashes noch drin sind dann muss auch replace funktionieren.

Code:
        String s1 = "C:\\Pfad\\Ordner\\";
        String s2 = s1.replace('\\','/');
        System.out.println(s1);
        System.out.println(s2);

Ausgabe:

  • C:\Pfad\Ordner\
    C:/Pfad/Ordner/

Das kann doch dein Rechner nicht einfach anders machen!

MfG
mischer
 

Peter@Pan

Aktives Mitglied
Sky hat gesagt.:
Hier zwei Varianten, die funktionieren:

Code:
    String s= getPathFromFile();
    System.out.println(s); // Ausgabe= C:\send

    // 1. Variante:
    s=s.replace('\\', '/');
    System.out.println(s); // Ausgabe= C:/send

    // 2. Variante:
    s=s.replaceAll("\\\\", "/");
    System.out.println(s); // Ausgabe= C:/send


Gibt getPathFromFile(); auch wirklich "C:\send" zurück oder "C:\\send" ?
 
G

Gast

Gast
Vielleicht hängt es davon ab, wie der String eingelesen wird!
Ich habe nämlich exact das gleiche Problem und lese den String aus der Datei mithilfe der Klasse PropertyRessourceBundle.

Dann enthält der ausgelesene String überhaupt gar keine \ mehr.
Replace funktioniert nicht und auch die Variante mit dem CharArray geht nicht!
 

Peter@Pan

Aktives Mitglied
Gast hat gesagt.:
Vielleicht hängt es davon ab, wie der String eingelesen wird!
Ich habe nämlich exact das gleiche Problem und lese den String aus der Datei mithilfe der Klasse PropertyRessourceBundle.

Dann enthält der ausgelesene String überhaupt gar keine \ mehr.
Replace funktioniert nicht und auch die Variante mit dem CharArray geht nicht!


Property entfernt scheinbar alle \ :x


Code:
//Im Testdokument steht der Pfad C:\send
BufferedReader in = new BufferedReader(new FileReader("E:\\Textdokument.txt"));
			String buffer = null;
			while((buffer = in.readLine()) != null)
			{
				
				char test[] = buffer.toCharArray();
				char sep = '\\';
				for(int i = 0; i < test.length; i++)
				{
					
		
					if(test[i] == sep)
					{
						test[i] = '/';
					}
				}
                                                                //um zu gucken ob es geklappt hat
                                                                System.out.println(test);
                                                                System.err.println(buffer);
                                                    }

^^so geht es jetzt bei mir
 

Bleiglanz

Gesperrter Benutzer
der Slasher geht um!

Code:
String s="C:\\Hans"; // enthält genau einen \
System.out.println(s.replace('\\','/'));
System.out.println(s.replaceAll("\\\\","/"));
System.out.println(s.replace("\\","/"));

unter java5 gibts diese drei varianten...
 

Bleiglanz

Gesperrter Benutzer
das mit den Properties hatten wir vor kurzem schon mal

-> entfernt tatsächlich die \

kann man also nicht für Windows-Dateipfade nehmen
 
G

Gast

Gast
Bin gerade dabei eine Klasse zu schreiben, die von PropertyRessourceBundle erbt zu schreiben, die das dann nicht mehr entfernt!

Poste ich dann, vielleicht kann's ja jemand gebrauchen!
 
R

Roar

Gast
Gast hat gesagt.:
Bin gerade dabei eine Klasse zu schreiben, die von PropertyRessourceBundle erbt zu schreiben, die das dann nicht mehr entfernt!

Poste ich dann, vielleicht kann's ja jemand gebrauchen!
das wird nix bringen, PropertyResourceBundle benutzt Properties zum einlesen. wen ndann müsstest du ne eigene Properties.load() methode implementieren, und dein eignes resourcebundle dazu zwignen die zu benutzen.

wenn man klug is oder besseres zu tun hat wird man einfach / oder \\ in die properties dateien schrieben :autsch:
 
G

Gast

Gast
Wie kann ich annehmen, daß der User, der mein Programm benutzen wird klug ist? Schließlich hat er auch Windows gekauft!
 
R

Roar

Gast
Anonymous hat gesagt.:
Wie kann ich annehmen, daß der User, der mein Programm benutzen wird klug ist? Schließlich hat er auch Windows gekauft!
warum fummeln die benutzer des programms in den dateien rum? is nich sehr benutzerfreundlich. ich dachte in dem satz eigentlich an die programmierer.
was der zweite satz damit zu tun hat versteh ich nich.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
R int in Ascci umwandeln Java Basics - Anfänger-Themen 7
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
G Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
S JAR zu EXE umwandeln Java Basics - Anfänger-Themen 22
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
O von Basis 10 in Basis x umwandeln Java Basics - Anfänger-Themen 5
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
I JSON Datei in Array umwandeln Java Basics - Anfänger-Themen 1
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
W Dezimalzahlen in Binärzahl umwandeln. Wie möglich ? Java Basics - Anfänger-Themen 9
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
MiMa String in Gross und Kleinbuchstaben umwandeln Java Basics - Anfänger-Themen 10
H JCalendar in String umwandeln Java Basics - Anfänger-Themen 9
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
G .java in .jar umwandeln Eclipse Java Basics - Anfänger-Themen 12
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
C Array in String umwandeln Java Basics - Anfänger-Themen 5
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
D String zu int umwandeln Java Basics - Anfänger-Themen 2
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
K Wie .java in .jar umwandeln? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4
W String Array in Int umwandeln um auf Zahl zu überprüfen Java Basics - Anfänger-Themen 4
G double in float umwandeln Java Basics - Anfänger-Themen 2
M csv in xlsx umwandeln Java Basics - Anfänger-Themen 7
F Char in Long umwandeln? Java Basics - Anfänger-Themen 2
D String in FileInputStream umwandeln Java Basics - Anfänger-Themen 2
J Mit Eclipse PLZ in Koordinaten umwandeln und ausgeben Java Basics - Anfänger-Themen 3
A Erste Schritte Buchstaben in zahlen umwandeln Java Basics - Anfänger-Themen 4
T opengl Dreick in einen Würfel umwandeln Java Basics - Anfänger-Themen 0
S Groß bzw. Klein Buchstaben umwandeln (gemischt) Java Basics - Anfänger-Themen 1
D Methode mit mehren Rekursiven aufrufen in Methode mit einem Rekursiven Aufruf umwandeln! Java Basics - Anfänger-Themen 1
V String in Byte umwandeln Java Basics - Anfänger-Themen 11
S Element von List<E> in String umwandeln Java Basics - Anfänger-Themen 3
N Unsymmetrisches mehrdimensionales Array in eindimensionales umwandeln Java Basics - Anfänger-Themen 2
B JPanel/JFrame in ein Applet umwandeln (Webfähig) Java Basics - Anfänger-Themen 7
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
J array in String umwandeln Java Basics - Anfänger-Themen 1
J array in String umwandeln Java Basics - Anfänger-Themen 3
S Klasse properties - Probleme beim umwandeln Java Basics - Anfänger-Themen 3
1 Binärdarstellung (als String) in Dezimalzahl umwandeln Java Basics - Anfänger-Themen 8
J subStrings zu int Array umwandeln? Java Basics - Anfänger-Themen 19
K JTextField auslesen, in int umwandeln und in einer anderen Klasse als Zähler verwenden Java Basics - Anfänger-Themen 3
C '.java' in '.exe' umwandeln. Java Basics - Anfänger-Themen 2
T Operatoren Float in byte umwandeln Java Basics - Anfänger-Themen 3
P Datum umwandeln Java Basics - Anfänger-Themen 5
P [B@6a435f in normalen Zahlen umwandeln, wie? Java Basics - Anfänger-Themen 14
M Input/Output Viele short aus Datei lesen und von Little Endian zu Big Endian umwandeln Java Basics - Anfänger-Themen 12
J C++ Bitmanipulations-Programm in Java umwandeln Java Basics - Anfänger-Themen 10
B Zahl Basis 10 in DualDezimal 16bit umwandeln Java Basics - Anfänger-Themen 8
X Datentypen Int oder String in Bits/Bytes umwandeln Java Basics - Anfänger-Themen 10
W Datentypen String in Quellcode umwandeln Java Basics - Anfänger-Themen 25
J int mit führenden Nullen in String umwandeln Java Basics - Anfänger-Themen 5
B datentyp in binär umwandeln Java Basics - Anfänger-Themen 5
A String in Double umwandeln mit Tests Java Basics - Anfänger-Themen 3
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
S Datumsstring in datetime umwandeln Java Basics - Anfänger-Themen 2
T int als 100% umwandeln? Java Basics - Anfänger-Themen 7
G Fehler beim Umwandeln eines Strings in int Java Basics - Anfänger-Themen 8
M String in Datum umwandeln mit SimpleDateFormat Java Basics - Anfänger-Themen 3
A String(Ascii ) in String umwandeln Java Basics - Anfänger-Themen 3
walker23m C++ Listen iteratoren in Java umwandeln Java Basics - Anfänger-Themen 3
V Zahl zu Text Umwandeln Java Basics - Anfänger-Themen 52
E Object in eigene Klasse umwandeln? Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben