hier ein tolle Newby-Frage :
Was stimmt an folgendem Code-Schnipsel nicht?
Es gibt eine ArrayList namens arrayList, die am Anfang in ein String-Array (abc) geschrieben wird.
Dieses soll dann an Hand des Trennzeichens "|" mittels StringTokenizer in zwei seperate String-Arrays geschrieben werden, was allerdings leider nicht funktioniert.
Code:
String[] abc = (String[])arrayList.toArray(new String[arrayList.size()]);
for (int u=0; u <= arrayList.size(); u++) {
StringTokenizer il = new StringTokenizer(abc[i], "|");
String[] abc_eine_Haelfte = (String[])il.nextElement();
String[] abc_andere_Haelfte = (String[])il.nextElement();
u++;
}
Bin für jede Hilfe wirklich dankbar, weil ich schon der Verzweiflung nahe bin...
Ulrich
Sorry, das habe ich nachträglich eingefügt, und dass stehe nicht im eigentlichen Code.
Sorry, daran liegt es nicht.
Zusatz: Das Prog fliegt immer mit einer "ClassCastException" raus, was immer das auch sein mag.
Zusätzlich zu dem was Wildcard geschrieben hat:
Sicherheitshalber solltest du auch noch mit hasMoreTokens() kontrollieren ob der StringTokenizer noch ein nächstes Token hat.
Kann nicht schaden.
Btw. warum verwendest du nicht "nextToken()" anstatt "nextElement()"?
nextElement() gibt Object zurück, nextToken() einen String.
Das verhindert keine ClassCastException, aber wenn das Prog erstmal läuft müsste er eigentlich ne ArrayIndexOutOfBoundsException schmeissen bei deiner Lösung.
Schau dir die Posts von Wildcard und mir mal an...
Jetzt, verstehe ich überhaupt nichts mehr? :bahnhof:
Ich habe doch eine ArrayList mit zig Elemente auf ein Array-String verteilt.
Und ich brauche für die weitere Verarbeitung unbedingt ein Array.
Weiß ich leider auch nicht. :shock: Vielleicht müsste ich korrekt formulieren, dass JBuilder diese Option nicht vorschlägt, auch wenn sie eigentlich zulässig ist. Nach Eingabe des Punktes schlägt er aber nur ".nextElement" vor. Vielleicht hängt das mit der ArrayList zusammen.
Wenn ich das richtig gelesen hab gehst du momentan so vor:
Code:
arraylist.add("Hauptstadt von Frankreich | Paris");
arraylist.add("Hauptstadt von Österreich | Wien");
....
Soweit korrekt? Du willst jetzt in einem Array die "Frage" (also Hauptstadt von ... , Hauptstadt von ...) und in einem Array die "Antworten" (Paris,Wien) etc. in nem anderm?
Dann können wir immer noch weitersehen, bevor wir hier aneinander vorbeireden.
Zum Verständnis: Du schreibst, dass deine Daten in einer ArrayList stehen: Warum stehen Sie da und wie kommem sie dort rein??? (Frage nur, weil sich dein Prob evtl. auch anders lösen läßt...)
Ansonsten könnte man es auch z.B. so lösen:
Code:
ArrayList arraylist = new ArrayList();
arraylist.add("Hauptstadt von Frankreich | Paris");
arraylist.add("Hauptstadt von Österreich | Wien");
String[] erste = new String[arraylist.size()];
String[] zweite = new String[arraylist.size()];
String[] temp = null;
for ( int i = 0; i < arraylist.size(); i++) {
temp = ((String)arraylist.get(i)).split("\\|");
erste[i] = temp[0];
zweite[i] = temp[1];
}
Ich will gleich dazu sagen, dass es noch weitere Lösungen gibt, die mindestens genau so gut sind...