Escape-Sequenzen in String einbauen?

Von: , Frage gestellt am Mo, 10. Mai 2004

Hi,

in meiner Software bekomme ich einen String, der einen Dateipfad angibt, wie z.B. "C:\test\meinedatei.dat"
Um diese Datei nun wirklich öffnen zu können, muß der String mit Escape-Sequenz aufgemöbelt werden zu "C:\\test\\meinedatei.dat".

Gibt es eine Funktion oder so dafür?

Besten Dank
Winni

5 Antworten zu dieser Frage

  1. Antwort von nach 53 Minuten 0 hilfreich
    Re: Escape-Sequenzen in String einbauen?

    Um diese Datei nun wirklich öffnen zu können, muß der String
    mit Escape-Sequenz aufgemöbelt werden zu "C:\\test\\meinedatei.dat".
    Warum? Java kommt auch mit "C:\temp\bla.txt" zurecht.
    Du bekommst nur einen Fehler, wenn du nicht "Escape-Sequenz"te
    Strings im Quellcode angibst.

    Ansonsten auch hier eine pragmatische "Loesung":

    String filename = txtEingabe.getText().replace('\\', '/');


    Gruss, Patrick

    • Antwort von nach einer Stunde 0 hilfreich
      Re^2: Escape-Sequenzen in String einbauen?

      Also wenn ich ein \n im Filenamen habe, ist alles aus...

      Aber wenn der das mit dem replace packt, wäre gut. [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach 2 Stunden 0 hilfreich
        Re^3: Escape-Sequenzen in String einbauen?

        Also wenn ich ein \n im Filenamen habe, ist alles aus...
        Klar, gehoert da ja auch nicht unbedingt rein. Aber wie kommt
        es darein?
        Ich dachte, dass es sich hier um eine Benutzereingabe handelt
        (Textfeld oder Dialogbox). Aber wenn der das mit dem replace packt, wäre gut.
        '\n' ist ja meist am Ende eines Strings, so dass abschneiden doch
        reichen sollte.

        Gruss, Patrick

        • Antwort von nach 3 Stunden 0 hilfreich
          Re^4: Escape-Sequenzen in String einbauen?

          Also wenn ich ein \n im Filenamen habe, ist alles aus...
          Klar, gehoert da ja auch nicht unbedingt rein. Aber wie kommt
          es darein?
          Ich dachte, dass es sich hier um eine Benutzereingabe handelt
          (Textfeld oder Dialogbox).

          Nein, es handelt sich leider um Pfadangaben, die durch Auslesen einer Konfigurations-Datei oder über das Holen von Environment-Daten (System-Variablen, Workaround etwas weiter unten) entstehen. Aber wenn der das mit dem replace packt, wäre gut.
          '\n' ist ja meist am Ende eines Strings, so dass abschneiden
          doch reichen sollte.
          naja, nicht wirklich....

          Wenn ich in so einer Ini-Datei folgende Zeile habe:
          TEST_DIR=C:\neuerOrdner
          dann wird mit dem Reader die Zeile korrekt in den String eingelesen.

          Nur wenn ich dann den String weiterverarbeiten will, wird dieser Teilstring "\n" eben als Zeilenvorschub interpretiert.
          Leider passiert das auch mit anderen Buchstaben.

          Jemand ne Idee? Gruss, Patrick
          Gruß
          Winni

          • Antwort von nach 4 Stunden 0 hilfreich
            Re^5: Escape-Sequenzen in String einbauen?

            Nur wenn ich dann den String weiterverarbeiten will, wird
            dieser Teilstring "\n" eben als Zeilenvorschub interpretiert.
            Leider passiert das auch mit anderen Buchstaben.
            Also, nach der Zuweisung sieht der String so aus:
            [0]= C
            [1]= :
            [2]= \n
            [3]= e
            [4]= u
            [5]= e
            [6]= r
            [7]= O
            ...
            Ausgabe:
            C:
            euerOrdner

            Ich habe jetzt mal mit einem StringBuffer getestet:

            ...
            StringBuffer sBuf = new StringBuffer(props.getProperty("TEST_DIR"));
            sBuf.replace(buff.indexOf("\n"), buff.indexOf("\n")+1, "\\n");
            ...


            Jetzt sieht es so aus:
            [0]= C
            [1]= :
            [2]= \\
            [3]= n
            [4]= e
            [5]= u
            [6]= e
            [7]= r
            ...
            Ausgabe:
            C:\neuerOrdner

            Gruss, Patrick

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!