Forum / Grundlagen des Programmierens / 3. Hausübung
3. Hausübung
Ich mache hier mal ein Thema auf für die 3.HUE
Jeder der Vorschläge und Tipps hat, bitte hier posten ;)
hier is die lösung viel spaß!
- 1 Download Nur für Studenten!
hier is die lösung viel spaß! input == "m" funktioniert nicht, da Strings per "==" nur die Adresse vergleichen und nicht den Inhalt.
Täusch ich mich oder hast du keine Zugriffsspezifizierer?
Wie gibt man den Dateipfad an (bei Windows)? Und muss ich vorher ein File anlegen? Bekomme immer eine FileNotFoundException.
Lg Babsi
@ martinsp hier sind einige sachen über exeptions ;)
http://staff.fim.uni-passau.de/schmidtb/or/informatik/informatik1/Exceptions.pdf
Exception Handling [url=http://www.java-tut
Beim 1er Beispiel kann man das Werfen der Exception z.b. mit einem SwitchCase lösen...das funktioniert bei mir eigentlich ganz gut! :-)
also ich habe ein "kleines" problem,
meine Klassen sind so geschrieben das wenn ein Linienzug objekt erstellt wird automatisch eine arraylist für die Linien darin angelegt wird (über Konstruktor) und sobald eine neue Linie in diese hinzugefügt wird werden über den konstruktor der Linie automatisch zwei Objekte Punkt erstellt (anfangs und endpunkt, ja ich weis das dadurch jeder punkt außer erster und letzter doppelt vorhanden sind, aber das werde ich noch irgendwie lösen ;-))
wenn ich jetzt im ersten Objekt Linienzug in der Arraylist Linienzugliste eine neue neue linie hinzufügen will dann sollte das doch über
Linienzugliste[0].Linienliste.add(new Linie(int, int, int, int))
funktionieren oder wie kann ich einzelne objekte in der liste ansprechen?
Linienzugliste[0].Linienliste.add(new Linie(int, int, int, int))
funktionieren oder wie kann ich einzelne objekte in der liste ansprechen? Was ist Linienzugliste? Ein Array? Wenn ja was für eins?
Ich denke ich weis wo mein fehler ist
Linienzugliste ist eine Arraylist und wie ichd as so sehe kann ich in einer arraylist nur adden oder rauslöschen aber nicht direkt drin bearbeiten wie bei einem array
also muss ich vorher ein "dummy" objekt von Linienzug erstellen und befüllen das ich nacher zur Liste adden kann
neues problem an dem ich mir den kopf zerbreche:
String[] temp = sc.next().split(":");
Linienzug l = new Linienzug();
//Linien werden erstellt im Linienzug
for(int i=0;i<temp.length-2;i=i+2){
System.out.println("arraylänge:" + temp.length);
System.out.println(temp[i]);
System.out.println(temp[i+1]);
System.out.println(temp[i+2]);
System.out.println(temp[i+3]);
System.out.println(Integer.parseInt(temp[i]));
System.out.println(Integer.parseInt(temp[i+1]));
System.out.println(Integer.parseInt(temp[i+2]));
System.out.println(Integer.parseInt(temp[i+3]));
l.Linienliste.add(new Linie(Integer.parseInt(temp[i]), Integer.parseInt(temp[i+1]), Integer.parseInt(temp[i+2]), Integer.parseInt(temp[i+3])));
}
Bei diesem codefragment wirft er mir ab der vorletzten zeile also bei Integer.parseInt(temp[i+3]) eine NumberFormatException aus, und ich komme nicht drauf warum, bei allen anderen zeilen gehts aber bei i+3 nicht mehr, wenn ich nur die strings ausgeben lasse läuft alles und da ist die letzte zahl 234, ich bin schwerstens am verzweifeln!!!!! es müsste eigentlich laufen!!!!
EDIT: kann es sein das da am ende des letzten eintrages noch ein return hinten dran ist und der parseint nicht damit klar kommt?? ich habe nur leider keine ahnung wie ich das da weg bekomme
EDIT: kann es sein das da am ende des letzten eintrages noch ein return hinten dran ist und der parseint nicht damit klar kommt?? ich habe nur leider keine ahnung wie ich das da weg bekomme Schreib die Datei einfach selber neu schön mit ":" als whitespace. Die Datei vom Tuwel ist nicht schön formatiert da kannst du relativ schnell in einen Fehler reinlaufen obwohl der Code eigentlich passen würde.
edit: E set(int index, E element) Replaces the element at the specified position in this list with the specified element.
Arraylist bietet das Einfügen an bestimmter Stelle an. Einziger Unterschied zum Array (mehr oder weniger) ist, dass es dynamisch ist.
danke für die antwort nigel
ich meinte eigentlich das ich ein objekt einer arraylist nicht so wie ein normales arrayobjekt ansprechen kann (bzw. eine variable darin)
also so: "objekt[i].variable = neuevariable"
habe nicht die datei von tuwel verwendet, ist alles auf meinem mist gewachsen trennen habe ich über string[] temp = sc.next().split(":") gemacht (also direkt einlesen und splitten am ":"
damit bleibt aber beim letzten element der ersten zeile ein zeilenumbruch (/n) am schluss stehen (sollte es noch jemandem so ergehen) LÖSUNG: .trim() methode verwenden wusste nicht das die auch umbrüche mitnimmt ^^
danke für die antwort nigel
ich meinte eigentlich das ich ein objekt einer arraylist nicht so wie ein normales arrayobjekt ansprechen kann (bzw. eine variable darin)
also so: "objekt[i].variable = neuevariable" ^ Doch kannst du.
ja? also irgendwie funktioniert das bei mir nicht so ganz, hatte ursprünglich versucht ein objekt linienzug in die liste zu adden (in linienzug ist eine neue liste linien enthalten), und dann direkt im objekt linienzug eine neue linie hinzuzufügen, aber das wollte nicht funktionieren.
List<Linienzug> Linienzugliste = new Arraylist<Linienzug>;
im konstruktor von linienzug steht dann List<Linie> Linienliste = new Arraylist<Linie>;
dann funktioniert aber das hier nicht!
Linienzugliste[i].Linienliste[j].add(new Linie(ax,ay,ex,ey));
(Linie hat natürlich den ensprechenden konstruktor)
Martin @MartinSP
Maschinenbau · Technische Universit...
hat wer eine idee, oder kann mir jemand sagen wo ich über exceptions lesen kann?? hab nicht vestanden welche wir z.b bei der 1. aufgabe benutzen sollen