[Java] split bij dubbele slashes.

Pagina: 1
Acties:

  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
Ik zou een directorystructuur zoals deze D:\\eclipse-SDK-3.0.1-win32\\eclipse\\workspace\\vb06_01\\lokatie.txt" graag willen splitten in aparte namen.

dus:
eclipse
workspace
etc.

Maar tijdens het compilen van deze code krijg ik onderstaande error. Iemand ideen waarom bij het splitten van \\ hij een fout geeft?

code:
1
2
3
4
5
6
7
8
9
    while (pos.hasNext()){

        String s = (String)pos.next();
        String[] st = s.split("\\");
             
          for (int i = 0; i < st.length; i++)   { 
              System.out.println(st[i]);
         }
    }


FOUT:
java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
\
^

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.


  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
1) In java is de backslash een escape symbool in strings. Je split nu dus op de char '\'
2) In regexes is de backslash een escape symbool.
Dus je moet de escape dubbel escapen zeg maar :P

[edit] Die dubbele slashes in je pad zullen dus ook wel escapes zijn, voor java zijn het dan gewoon normale backslashes in het pad.

[ Voor 29% gewijzigd door Glimi op 25-10-2004 21:03 ]


  • x-man
  • Registratie: September 2001
  • Laatst online: 14-05 09:47

x-man

Proud newbie!

Topicstarter
Glimi schreef op 25 oktober 2004 @ 20:59:
1) In java is de backslash een escape symbool in strings. Je split nu dus op de char '\'
2) In regexes is de backslash een escape symbool.
Dus je moet de escape dubbel escapen zeg maar :P

[edit] Die dubbele slashes in je pad zullen dus ook wel escapes zijn, voor java zijn het dan gewoon normale backslashes in het pad.
Ah ok bedankt Glimi.

"\\\\" does the trick. Ik escapede het maar 1 keer.

Better a newbie in one hand then ten wannabe-hacker-scriptkiddies on your server.