Announcement

Collapse
No announcement yet.

Unterschied von split() zwischen String und Pattern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Unterschied von split() zwischen String und Pattern

    Hi,

    weiss jemand warum die split()-Methode unterschiedlich arbeitet, je nachdem, ob ich sie auf einem String oder Pattern anwende? Das String-Split wird doch an ein Pattern-Split weitergereicht.

    Beispiel:
    Pattern p = Pattern.compile( "[.]" );
    String[] adr = p.split("10.11.12") ;

    String[] adr2 = "10.11.12".split(".");


    Das Adr-Array hat hier korrekterweise drei Elemente, nämlich 10, 11 und 12.
    Adr2 hingegen keine. Adr2.length() ergibt 0.

    Ändere ich die Zeile in:
    String[] adr2 = "10,11,12".split(",");

    arbeitet sie korrekt und liefert drei Elemente.

  • #2
    Hallo Holger,

    Du verwendest in Deinem Beispiel ja auch zwei unterschiedliche expressions, einmal "." und das andere mal "[.]". Bei derselben expression kommt auch dasselbe raus. "." bedeutet "jedes Zeichen", wenn Du wirklich den Punkt matchen willst, verwende "\\.". Innerhalb "[]" wird der Punkt nicht als metacharacter sondern eben als Punkt interpretiert. Hat also nichts mit Java oder den beiden Methoden zu tun sondern einfach mit der Interpretation von regular expressions.

    Viele Grüße,

    Alwin

    Comment


    • #3
      Re.

      Danke,

      ich muss also auch bei der split()-Methode korrekterweise einen regulären Ausdruck übergeben, jedenfalls bei einigen Zeichen.

      Gruß
      Holger

      Comment

      Working...
      X