Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe eine Datein mit mehreren Datensätzen. (Vokabelpaare -> deu; eng).
mit dem Scanner öffne ich die Datei und lese die Anzahl der Einträge mit einer Schleife aus.
So weit, so gut.
Nun will ich aber ein Array mit sovielen Feldern, wie ich Vokabelpaare habe anlegen und in dieses Array Objekte speichern.
Wie das funktioniert weiss ich zwar, aber es geht anscheinend nicht mit einer Schleife.
Code:
Vokabeln[] Vokabelliste = new Vokabeln[vokabelpaare];
Scanner file = new Scanner(new File("data/Vokabeln.txt"));
file.useDelimiter( ";");
for (int i = 0; (file.hasNext()); i++)
{
Vokabelliste[i] = new Vokabeln(file.next(),file.next());
}
file.close( );
Dazu sei ncoh gesagt, dass es noch eine Klasse Vokabeln gibt, in der das deutsche und englische Wort, sowie noch einige andere Sachen angelegt werden.
Kann mit jemand sagen, wieso ich das Array Vokabelliste in der Schleife füllen kann?
"geht ned" gibt es nicht. Entweder muss der compiler irgendwelche konkrete Fehlermeldungen angeben, oder die Runtime muss meckern, oder das resultat muss sich in irgendeiner konkreten art und weise vom gewüschten unterscheiden. "geht ned"... was ist denn das bitte für eine Problembeschreibung?
Kann mit jemand sagen, wieso ich das Array Vokabelliste in der Schleife füllen kann?
um etwas genauer zu werden: der Compiler meckert nicht. Ich fülle auch das Array mit Objekten, allerdings steht in jedem Objekt im Array der zuletzt eingelesene Wert. Sprich: statt 13 unterschiedlichen Objekten bekomme ich 13 mal das gleiche Objekt. Und zwar steht in allen das zu letzt eingetragene!
joah, schon etwas verständlicher, allerdings sehe ich bei der oberflächlichen inspektion erstmal nicht, woran das liegen könnte...
Code:
import java.util.Scanner;
public class ScannerDelimiterTest {
public static void main(String[] args) {
//wo du dein input herbekommst, soll egal sein
String input="wo;ich;ni;du;ta;er;shi;sein;ren;Mensch;guo;Land";
//statt Vokabeln-Objekt hab ich einfach ein 2er String array genommen
String[][] array=new String[6][];
//scanner genau wie bei dir
Scanner scanner=new Scanner(input);
scanner.useDelimiter(";");
//exakt genauso einlesen
for(int i=0; scanner.hasNext(); i++){
array[i]=new String[]{scanner.next(), scanner.next()};
}
//zum test ausgeben
for(String[] entry: array){
System.out.printf("%15s\t%15s\n",entry[0],entry[1]);
}
}
}
das ist jetzt ein "minimalbeispiel" das sich jeder wünscht, der die frage beantworten soll (nur so als anmerkung für die zukunft )
Da steht im prinzip alles dasselbe wie bei dir, und imho ist der code zwar ziemlich gefährlich gebaut, aber im prinzip richtig und lauffähig.
Also, kA, kannst du irgendwelche unterschiede erkenne, bzw bist du dir sicher, dass du genau das gleiche tust, bzw bist du überhaupt sicher, dass das problem in den zeilen liegt, die du gepostet hast?