tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
689
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Solores Solores ist offline Informatiker Azubi
    Registriert seit
    Oct 2010
    Ort
    Paderborn (NRW)
    Beiträge
    1
    Hallo alle zusammen!
    Habe eine eigentlich sehr einfache Frage, allerdings kann ich mir auch nach stundenlangem Suchen keinen Reim darauf machen wieso der Algorithmus nicht läuft!

    Der wichtigste Teil:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    public class Test 
    {
     
        public static void main(String[] args) 
        {
     
            String url = "start E:\\Filme\\Action\\Edgar Wallace\\Das Gesicht im dunkeln.avi";
            String sub = "error";
            int count = 0;
            int index = 0;
            
            for(int i = 0; i< url.length();i++)
            {
                if(count == 0)
                {
                    index = url.indexOf("\\");
                    url = url.replaceFirst("\\", "\\\"");
                }
                else
                {
                    sub = url.substring(index+1);
                    sub = sub.replaceAll("\\", "\"\\\"");
                }
            //url = url + sub;
            
            count++;
            }
    System.out.println(url);
        }
     
    }

    Das Programm soll aus dem Pfad:

    E:\\Filme\\Action\\Edgar Wallace\\Das Gesicht im dunkeln.avi;

    diesen Pfad erzeugen:

    E:\\\"Filme\"\\\"Action\"\\\"Edgar Wallace\"\\\"Das Gesicht im dunkeln.avi\";

    Das soll dann als ausgegebenener String so aussehen soll:

    E:\"Filme"\"Action"\"Edgar Wallace"\"Das Gesicht im dunkeln.avi";

    Ich bekomme immer folgende Fehlermeldung:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    Exception in thread "main" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
    \
     ^
        at java.util.regex.Pattern.error(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.util.regex.Pattern.<init>(Unknown Source)
        at java.util.regex.Pattern.compile(Unknown Source)
        at java.lang.String.replaceFirst(Unknown Source)
        at GUI.Test.main(Test.java:20)

    Danke im voraus!
     

  2. #2
    CKingZesi CKingZesi ist offline Mitglied Silber
    Registriert seit
    Oct 2008
    Beiträge
    62
    Hallo Solores,
    Der Grund warum dein Algorithmus nicht läuft ist der Folgende:
    Auf Zeile 17 ersetzt du einen Teil des Strings (mit Escape Character) mit einem anderen Teil (ebenfalls mit Escape Character). Jeder Backslash benötigt ja wiederum einen Backslash als Escape Character. Daher würde dein String nach einmal Zeile 17 (dein Code) etwa so aussehen:

    Vorher:
    E:\\Filme\\Action\\Edgar Wallace\\Das Gesicht im dunkeln.avi;
    Nachher:
    E:\"\Filme\\Action\\Edgar Wallace\\Das Gesicht im dunkeln.avi;

    Nun, das ist leider kein gültiger String mehr...

    Lösung: (Ich habe den Algorithmus umgebaut, weil deiner leider nicht das gewünschte Resultat produziert)

    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    public class Test
    {
      public static void main(String[] args)
      {
        String sUrl = "start E:\\Filme\\Action\\Edgar Wallace\\Das Gesicht im dunkeln.avi";
        String sResult = "";
     
        String[] parts = sUrl.split("\\\\");
        int iSize = parts.length;
     
        if(iSize > 0)
        {
            sResult += parts[0] + "\\";
            for(int a=1; a<iSize; a++)
          {
            sResult += "\"";
            sResult += parts[a];
            sResult += "\"";
            if(a<iSize-1)
            {
              sResult += "\\";
            }
          }
        }
     
        System.out.println(sResult);
      }
    }

    Freundliche Grüsse
    CKingZesi
    Geändert von CKingZesi (25.10.10 um 08:19 Uhr) Grund: Rechtschreibung korrigiert
     
    Eine Frage braucht keinen Anlass, die Frage ist der Anlass selbst...

Ähnliche Themen

  1. Probleme mit CSS im IE8
    Von Necro_nomicon im Forum CSS
    Antworten: 6
    Letzter Beitrag: 01.07.09, 13:37
  2. Probleme mit IE 5.5
    Von geos im Forum CSS
    Antworten: 4
    Letzter Beitrag: 30.04.06, 07:15
  3. Premiere Pro Export probleme / Projekt Probleme
    Von DanielT im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 5
    Letzter Beitrag: 31.10.03, 17:48
  4. Antworten: 6
    Letzter Beitrag: 21.05.03, 12:49
  5. css probleme
    Von untread im Forum CSS
    Antworten: 3
    Letzter Beitrag: 27.03.02, 11:57

Stichworte