tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    Mnemosine Mnemosine ist offline Mitglied Mnemosine hat eine blütenweiße Weste
    Registriert seit
    Jun 2007
    Beiträge
    11
    Hallo

    Wäre jemand bitte so nett mir zu erklären, wie genau die Splitanweisung Funktioniert? Bei mir sagt er immer er erkennt den Code nicht.

    Danke im voraus

  2. #2
    lernen.2007 lernen.2007 ist offline Mitglied Platin lernen.2007 hat eine blütenweiße Weste
    Registriert seit
    Mar 2005
    Beiträge
    736
    Hallo,

    ich glaube du meinst die Splitt Methode von String.

    String tutorials = "www.tutorials.de";

    String[] splittArray = tutorials.split(".");

    Ergebnis:

    splittArray[0] = "www";
    splittArray[1] = "tutorials";
    splittArray[2] = "de";

    Du zerteilst einfach einfach den String nach bestimmten Kriterien.

    Ein interassentes Link:
    http://www.dpunkt.de/java/Referenz/D...a.lang/68.html

  3. #3
    Benutzerbild von tobias_petry
    tobias_petry tobias_petry ist offline Mitglied Brokat tobias_petry sorgt für eine eindrucksvolle Atmosphäre
    Registriert seit
    Nov 2003
    Beiträge
    285
    nur schade, dass das nicht gehen wird
    Denn erwartet wird ein regulärer Audruck und in einem RegExp steht der Punkt für ein beliebiges Zeichen, damit man ihn nutzen kann, muss er maskiert werden mit einem Backslash

    es müsste also folgendermaßen lauten:
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    String tutorials = "www.tutorials.de";
     
    String[] splittArray = tutorials.split("\\.");
     
    Ergebnis:
     
    splittArray[0] = "www";
    splittArray[1] = "tutorials";
    splittArray[2] = "de";
    "If you give someone a program, you will frustrate them for a day
    but if you teach them how to program, you will frustrate them for a lifetime."

  4. #4
    lernen.2007 lernen.2007 ist offline Mitglied Platin lernen.2007 hat eine blütenweiße Weste
    Registriert seit
    Mar 2005
    Beiträge
    736
    Hast Recht.

    Danke

  5. #5
    kirina kirina ist offline Mitglied Bronze kirina hat eine blütenweiße Weste
    Registriert seit
    Mar 2008
    Beiträge
    36
    \\. hieß ja das immer bei einem punkt getrennt wird. aber was bedeutet nur \\ und wenn noch was mit plus drangehängt wird, wird dann wenn das eine ODER das andere ist aufgeteilt oder wenn das eine UND das andere ist.?

    hier ein kurzer auszug als beispiel:

    Code :
    1
    2
    3
    
    return metadataKeysString.split("\\" + METADATA_KEYS_SEPARATOR);
     
    public static final char METADATA_KEYS_SEPARATOR = '|';

  6. #6
    Benutzerbild von procurve
    procurve procurve ist offline Mitglied Gold procurve wird schon bald berühmt werden
    Registriert seit
    Aug 2007
    Beiträge
    159
    \\ entspricht in einem Java-String dem einfachen \

    Grund:
    Ein einfacher Backslash \ ist ein Steuerzeichen für sogenannte Escape-Sequenzen wie \n, \r, \t, etc.
    Um also einen einfachen Backslash \ in einem Java-String darzustellen, muss man ihn mit einem vorangestellten \ "escapen", also \\ schreiben.

    Wenn du zwei Strings mit + verknüpfst, wird weder eine UND- noch eine ODER-Operation ausgeführt, sie werden lediglich aneinandergehängt:

    Code :
    1
    2
    3
    
    String a = "a";
    String b = "b";
    String c = a + b;  // -> c = "ab"

    Willst du also deine Metadaten bei jeden | aufsplitten, musst du lediglich

    Code :
    1
    
    s.split("|");
    bzw. in deinem konkreten Fall
    Code :
    1
    
    metadataKeysString.split(METADATA_KEYS_SEPARATOR);

    schreiben.

  7. #7
    kirina kirina ist offline Mitglied Bronze kirina hat eine blütenweiße Weste
    Registriert seit
    Mar 2008
    Beiträge
    36
    das problem ist das ich einen vorgebenen Code habe, den ich verstehen muss, und der ist eben so:

    Code :
    1
    
    return metadataKeysString.split("\\" + METADATA_KEYS_SEPARATOR);

    ich muss ein plugin schreiben und diese klasse, die diesen Code enthält brauche ich. des weiteren muss ich das aber weiter entwicklen, weil diese klasse (die jemand anderes geschrieben hat) nicht alles erfüllt was ich brauche. Dazu muss ich aber natürlich verstehen was diese Klasse tut. Naja und es hakt eigentlich nur noch an diesem einen Ding (was ja eigentlich gar nicht schwer ist aber irgendwie...)

    naja und meine frage war jetzt eben, ob der code da oben bedeutet das immer bei einem von beiden aufgesplittet wird, oder wie ich mir das vorzustellen hab.

    und danke, an die Sache mit \\ = \ hab ich überhaupt nicht mehr drangedacht *schäm*
    Geändert von kirina (18.03.08 um 10:27 Uhr)

  8. #8
    mk666 mk666 ist offline Mitglied Bronze mk666 hat eine blütenweiße Weste
    Registriert seit
    Aug 2007
    Beiträge
    48
    METADATA_KEYS_SEPARATOR dürfte eine Konstante sein die irgendwo innerhalb deiner Klasse oder auch Projekts deklariert ist. Der Inhalt der Konstante wird mit "\\" verkettet und gesplittet wird somit bei jedem Vorkommen von "\\{Inhalt von METADATA_KEYS_SEPARATOR}"

  9. #9
    kirina kirina ist offline Mitglied Bronze kirina hat eine blütenweiße Weste
    Registriert seit
    Mar 2008
    Beiträge
    36
    public static final char METADATA_KEYS_SEPARATOR = '|';

    ,-) ich wollte es nicht nochmal posten, da es 2 post weiter oben bereits stand

    also wenn ich das richtig verstehe wird bei ' \| ' gesplittet? man könnte also theoretisch auch schreiben

    Code :
    1
    
    return metadataKeysString.split("\\|");

    um das gleiche ergebnis zu erhalten?

    und ich denk mir hier wunder was ,-) danke für eure hilfe!

  10. #10
    Ringer Tutorials.de Gastzugang
    habe auch eine frage zur splitt methode:

    habe ein projekt in dem verwende ich sie folgenderweise (jre sysrem library javase-1.6)
    String[] splittArray = result.split(":"); und sie funktioniert auch einwandfrei

    im anderen projekt (jre sysrem library cdc-1.0/foundation-1.0)
    bringt er beim combilieren keine fehlermeldung, wenn der Code aber abgelaufen werden soll bleibt er einfach an der splitt-methode hängen --ohne fehlermeldung--
    selbst wenn ich wie oben beschrieben die splitt methode so verwende String[] splittArray = result.split("\\:");

    woran kann dies liegen an den unterschiedlichen system libraries ? und wenn ja wie verwende ich dann die splitt-methode

  11. #11
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.457
    Blog-Einträge
    5
    Auch wenn die Antwort etwas spät kommt, die Nachwelt interessiert es vielleicht:
    Zitat Zitat von kirina Beitrag anzeigen
    public static final char METADATA_KEYS_SEPARATOR = '|';

    ,-) ich wollte es nicht nochmal posten, da es 2 post weiter oben bereits stand

    also wenn ich das richtig verstehe wird bei ' \| ' gesplittet?
    Nein! Das Pipe-Zeichen ist in regulären Ausdrücken ein Steuerzeichen (für eine Alternative). Wenn man ein Steuerzeichen als normales Zeichen verwenden will, muss man es erst „escapen“, also ein „\“ voranstellen. Der reguläre Ausdruck „\|“ erkennt also das Zeichen „|“. In Zeichenkettenliteralen muss ein einzelnes „\“ als „\\“ notiert werden, deshalb wird daraus insgesamt "\\|". Aber das wurde ja weiter oben schon erwähnt.

    [QUOTE=kirina;1588196]man könnte also theoretisch auch schreiben

    Code :
    1
    
    return metadataKeysString.split("\\|");
    Das wiederum ist richtig.


    Zitat Zitat von Ringer Beitrag anzeigen
    habe ein projekt in dem verwende ich sie folgenderweise (jre sysrem library javase-1.6)
    String[] splittArray = result.split(":"); und sie funktioniert auch einwandfrei

    im anderen projekt (jre sysrem library cdc-1.0/foundation-1.0)
    bringt er beim combilieren keine fehlermeldung, wenn der Code aber abgelaufen werden soll bleibt er einfach an der splitt-methode hängen --ohne fehlermeldung--
    selbst wenn ich wie oben beschrieben die splitt methode so verwende String[] splittArray = result.split("\\:");

    woran kann dies liegen an den unterschiedlichen system libraries ? und wenn ja wie verwende ich dann die splitt-methode
    Ja. Bei CDC gibt es keine Methode split. Wenn beim Kompilieren diesbezüglich keine Fehlermeldung auftrat, machst du irgendetwas falsch.

    Grüße,
    Matthias
    Geändert von Matthias Reitinger (14.02.10 um 03:52 Uhr)
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. Die Methode: focus()
    Von messmar im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 09.12.06, 12:15
  2. JMenuBar und die Paint() Methode
    Von BabyMitSchnully im Forum Java
    Antworten: 3
    Letzter Beitrag: 13.11.06, 13:17
  3. C# Split Methode nachprogrammieren
    Von draig im Forum C/C++
    Antworten: 1
    Letzter Beitrag: 29.11.05, 15:17
  4. Frage zur Methode - split oder nicht
    Von Feely im Forum PHP
    Antworten: 4
    Letzter Beitrag: 20.01.05, 09:06
  5. split() Methode für Java Version 1.3.1_1
    Von nautiLus` im Forum Java
    Antworten: 2
    Letzter Beitrag: 09.01.04, 14:17

Lesezeichen

Lesezeichen