ERLEDIGT
JA
JA
ANTWORTEN
10
10
ZUGRIFFE
73035
73035
EMPFEHLEN
-
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
-
04.06.07 22:40 #2
- Registriert seit
- Mar 2005
- Beiträge
- 743
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
-
05.06.07 17:58 #3
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:
"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."
-
05.06.07 20:03 #4
- Registriert seit
- Mar 2005
- Beiträge
- 743
Hast Recht.
Danke
-
\\. 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 = '|';
-
\\ 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
bzw. in deinem konkreten FallCode :1
s.split("|");
Code :1
metadataKeysString.split(METADATA_KEYS_SEPARATOR);
schreiben.
-
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)
-
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}"
-
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.02.10 10:57 #10Ringer 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
-
Auch wenn die Antwort etwas spät kommt, die Nachwelt interessiert es vielleicht:
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
Das wiederum ist richtig.Code :1
return metadataKeysString.split("\\|");
Ja. Bei CDC gibt es keine Methode split. Wenn beim Kompilieren diesbezüglich keine Fehlermeldung auftrat, machst du irgendetwas falsch.
Grüße,
MatthiasGeä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
-
Split Methode in Vector schreiben
Von tameck im Forum JavaAntworten: 3Letzter Beitrag: 23.01.08, 11:30 -
Vor Aufruf einer bestimmten Methode immer erst eine andere Methode aufrufen
Von lernen.2007 im Forum JavaAntworten: 2Letzter Beitrag: 06.06.07, 18:37 -
C# Split Methode nachprogrammieren
Von draig im Forum C/C++Antworten: 1Letzter Beitrag: 29.11.05, 15:17 -
Frage zur Methode - split oder nicht
Von Feely im Forum PHPAntworten: 4Letzter Beitrag: 20.01.05, 09:06 -
split() Methode für Java Version 1.3.1_1
Von nautiLus` im Forum JavaAntworten: 2Letzter Beitrag: 09.01.04, 14:17





Zitieren


Login




