Alle Beiträge von Whiz-zarD
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Nein. Wieso willst du nun nach "Lieblingsfach" splitten? Nochmal... Welches Zeichen trennt die Informatinen voneinander? Du hattest es doch gerade richtig... Und wie kannst du dann auf die einzelnen Strings in einem Array zugreifen? Das kannst du hier nachlesen.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Array, das Strings enthält ist richtig. Wie kommst du darauf, dass es leer ist? Und wie kannst du nun auf die Strings im Array zugreifen? Oder anders: Wenn das Array nun aus 3 Strings besteht, wie kannst du nun ein String auf der Konsole ausgeben? System.out.println( Arrays.toString(segs) ); Dieser Code gibt ja alles aus, was im Array steht. Wie gibst du aber nun ein String aus diesem Array aus?
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Nein, segs ist kein string. Schaue dir die Hilfe an: https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String) Was gibt split() zurück? Das ist dann also segs? Da steht was mit []. Was bedeutet das?
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Dann lass doch mal das Programm duchlaufen und schaue dir an, was da rauskommt. Welchen Datentyp besitzt die Variable segs? Und wie kannst du nun auf die Inhalte von segs zugreifen? Das kannst du hier (erstes Beispiel) nachlesen. Und wenn du das alles verstanden hast, dann können wir uns um die HashMap kümmern.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
So schwer ist das doch nicht... Schaue dir den String an "Test1;1111;Mathe". Durch welches Zeichen werden die drei Informationen getrennt? Und dann schaue dir mein Beispiel an "www.tutego.de". Durch welches Zeichen werden die drei Informationen getrennt? Schaue dir dann den Code an und finde den Fehler. UND VERGISS DIE HASHMAP! DIE KOMMT SPÄTER! DIE BRAUCHST DU NOCH NICHT!
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Das geht schon in die richtige Richtung aber schaue dir doch dein Code genau an und führe ihn doch mal aus und guck, was passiert. In der Variable segs wird nichts drinnen stehen, wieso ist das so? Nach welchem Kriterium splittest du nun dein String? Oder noch mal anders gefragt: Was macht split() bei dir?
-
teilbarkeit durch variable (c)
Im Grunde hast du doch schon alles beantwortet. Du weißt, was das if macht und weißt, wann du i ausgeben sollst. Also brauchst du das if nur noch an die Stelle einbauen.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Vergiss doch endlich meinen Code... Dein String besteht doch aus drei Informationen: Name, Matrikelnummer und Lieblingsfach und du willst auf Matrikelnummer und Lieblingsfach zugreifen können. Schaue dir das Beispiel an. Hier passiert exakt das selbe: String path = "www.tutego.com"; String[] segs = path.split( Pattern.quote( "." ) ); System.out.println( Arrays.toString(segs) ); // [www, tutego, com] Der String besteht ebenfalls aus drei Informationen: Subdomain ("www"), Domain ("tugego") und Top-Level-Domain ("de"). Wie muss also nun dein Code aussehen, um die Informationen zu trennen? Hier brauchst du überhaupt noch keine HashMap. Die brauchen wir erst später.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Weil du nie das machst, was man dir sagt... 🙄 Wie teilst du den String mittels split() auf? Dafür brauchst du noch keine HashMap oder sonstigen Kram. Schaue dir dieses Beispiel an und versuche es, in deinen Anwendungsfall umzuändern: String path = "www.tutego.com"; String[] segs = path.split( Pattern.quote( "." ) ); System.out.println( Arrays.toString(segs) ); // [www, tutego, com] In der Softwareentwicklung geht es darum, Probleme in kleine Teilprobleme zu lösen und mir geht es erstmal nur darum, die Informationen, die im string enthalten sind, zu teilen, sodass man einzeln darauf zugreifen kann. In dem Beispiel steht exakt beschrieben, wie das funktioniert. Hier wird eine URL in seine Einzelteile verlegt: Subdomain ("www"), Domain ("tutego" )und Top-Level-Domain ("de").
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Dann fangen wir halt von vorne an. Wie muss der Code denn aussehen, um aus "Test1;1111;Mathe" das Lieblingsfach herauszufiltern? Die Methode split() wurde doch schon erwähnt. Hier steht alles, was man darüber wissen muss. Edit: Oder anders gefragt: Wie kannst du mit Hilfe der split()-Methode den String in seine Einzelteile zerlegen?
-
teilbarkeit durch variable (c)
Schaue dir doch deine for-schleife an. Wann sollst du i auf dem Bildschirm ausgeben?
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Wie lautet überhaupt die Aufgabe? Auch diese Frage wurde hier schon oft gestellt und immer von dir ignoriert.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Was soll denn dabei deiner Meinung da rauskommen? Die HashMap wird nirgends gefüllt. Lass die HashMap doch mal weg. Die brauchst du sowieso nicht, was ich schon Tausend Mal geschrieben habe und erzeuge einfach nur ein einzelnes Student-Objekt.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Ich hab aber eher das Gefühl, dass du es nicht verstehen möchtest und dir auch egal ist, was hier geschrieben wird. Anstatt die Tipps anzunehmen und daran zu arbeiten, machst du komplett was anderes. Ich rate dir dringend ein Tutorial durchzuarbeiten. Dir fehlen komplett die Grundlagen der Informatik. Dir ist nicht mal klar, was Datentypen sind. Wie soll man denn da helfen, ohne Frontalunterricht zu geben? Hier ist ein Tutorial: Ich denke (oder ich hoffe), dass dir dann auch einiges klarer wird und merkst, dass dein Code keinen Sinn ergibt.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Ich würde vorschlagen, mit einem Tutorial anzufangen. So wird das nichts. Der komplette Code macht überhaupt keinen Sinn.
-
Warnung CS0252
Die Überladung des ==-Operators in der String-Klasse ruft die statische Variante von Equals() auf: public static bool operator == (String a, String b) { return String.Equals(a, b); } Wenn man die Equals()-Methode an der Instanz nehmen möchte, müsste vorher noch auf null prüfen. Also: if(btnStart?.Content != null && btnStart.Content.Equals("Start")) { ... } Ich persönlich finde dies unschön. Wenn man aber weiß, dass da eh nur ein String drinnen sein kann, dann würde ich es in ein String casten. Also: if((string)btnStart.Content == "Start") { ... } Oder um eine Excepion zu verhindern eben die statsiche Variante; if(string.Equals(btnStart?.Content, "Start")) { ... }
-
Warnung CS0252
nirgends. Der Code if (tbx.GetType() == typeof(TextBox)) { ((TextBox)tbx).Clear(); } ist schon richtig. Da liegt nicht der Fehler. Type hat nämlich ebenfalls den ==-Operator überschrieben.
-
Warnung CS0252
Das Problem ist folgender Code: if (btnStart.Content == "Start") { // ... } btnStart.Content ist ein object und kein string . Du vergleichst im Worst Case zwei unterschiedliche Datentypen. Die Equals-Methode im object vergleicht nämlich nur die Referenzen miteinander und nicht den Inhalt. In deinem Fall klappt es zwar, weil String den ==-Operator überschreibt aber in anderen Fällen klappt es nicht und deswegen bekommst du hier vom Compiler eine Warnung, dass du Content in ein String casten solltest, um Fehler zu vermeiden.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Wir drehen uns hier im Kreis... Ich dachte, du würdest den oberen Code verstehen. Anscheinend ja wohl doch nicht... Drauf zugreifen tust du, indem wir über die Liste iterieren, wie hier beschrieben: Zuvor musst du aber dein String "Test1;1111;Mathe" in ein Student-Objekt umwandeln und das machst du mit der von mir vorgeschlagenen deserialize()-Methode. Bei der Liste sieht es dann so aus: // Liste erzeugen List<Student> studentenDaten = new ArrayList<Student>(); // Liste mit Werten füllen studentenDaten.Add(deserialize("Test1;1111;Mathe")); ... Und deine Aufgabe ist nun, die deserialize()-Methode zu schreiben. Mehr werde ich dazu auch nicht mehr schreiben, da es nichts bringt, wenn man dir den Code diktiert. Du lernst daraus nichts.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Stichwort ist hier "Deserialisierung" oder auf Neu-Deutsch "Mapping". Du schreibst eine Methode, die den String als Parameter übegeben bekommt und ein Student zurückgibt: private static Student deserialize(string data) { // ... } Und dann schreibst du halt einfach: HashMap<integer, Student> students = new HashMap<integer, Student>(); Student student = deserialize("Test1;1111;Mathe"); students.put(student.getMatrikelnummer(), student); student = deserialize("Test2;2222;Physik"); students.put(student.getMatrikelnummer(), student); //... mit der Split()-Methode am String bekommst du ein Array von Strings und mit der Integer.parseInt()-Methode kannst du ein String in ein Integer wandeln. Viel spaß bei der Implementierung von deserialize(). Das kann auch mal deine Aufgabe sein.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
@r4phi: Ja, hab ich korrigiert. Java ist chon zu lange her. Bin C# verwöhnt.😄 null check hab ich erst mal weggelassen. Ich glaub, das verwirrt noch mehr. Das ist jetzt schon alles recht verwirrend.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Dafür brauchst du keine Map... public static void main(String[] args) { // Liste erzeugen List<Student> studentenDaten = new ArrayList<Student>(); // Liste mit Werten füllen studentenDaten.Add(new Student(...)); ... // Über die Liste iterieren for(Stundent student : studentenDaten) { // Student auf der Konsole ausgeben System.out.println("Student: " + student.getMatrikelnummer() + " | " + "Lieblingsfach: " + student.getLieblingsfach()); } } Eine Map wird benötigt, wenn du in einer Menge von Studenten einen bestimmten Studenten mittels der Matrikelnummer suchst: HashMap<integer, Student> students = new HashMap<integer, Student>(); students.put(1111, new Student("Test1", 1111, "Mathe")); Student student = students.get(1111); System.out.println("Student: " + student.getMatrikelnummer() + " | " + "Lieblingsfach: " + student.getLieblingsfach());
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Dann tu es doch. HashMap<integer, Student> studentenDaten = new HashMap<integer, Student>(); // Liste mit Werten füllen studentenDaten.put(..., new Student(...)); ... Und was hast du damit dann vor?
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Nein. Es ist doch inzwischen alles auf dem Tisch. Du musst doch nur noch alles zusammenfügen... public static void main(String[] args) { // Liste erzeugen List<Student> studentenDaten = new ArrayList<Student>(); // Liste mit Werten füllen studentenDaten.Add(new Student(...)); ... // Über die Liste iterieren for(Stundent student : studentenDaten) { // Student auf der Konsole ausgeben System.out.println(student.toString()); } } Ich glaub, das ist schon für dich schwierig genug und ich würde erstmal die HashMap weglassen und erst mal versuchen, den Code zu verstehen.
-
Wie kann ich eine Map erzeugen aus Daten einer anderen Klasse ?
Dann ist aber die Aufgabe falsch und ich glaube auch nicht, dass du verstehst, wofür man die Map benötigt. Es geht darum, dass man über einen Schlüssel den passenden Wert ermitteln kann. Den Schlüssel brauchst du aber hier gar nicht, da du nicht nach dem Schlüssel abfragst. Wenn du unbedingt eine HashMap haben möchtest und der Schlüssel die die Matrikelnummer sein soll, dann muss die HashMap so aussehen: HashMap<integer, Student> Anstatt einen String hast du nun einen Studenten als Wert.