Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2083
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    51

Alle Inhalte von Whiz-zarD

  1. Nein. Das new Student() lassen wir weg. Mir war nicht klar, dass dies nicht gefordert ist. Die Map soll nur mit der Matrikelnummer als Schlüssel und mit dem Lieblingsfach als Wert gefüllt werden. Was müssen wir denn jetzt nun aufrufen, um die HashMap zu füllen? Für die Liste verwenden wir add() aber für die HashMap wurde einen anderen Methodennamen gewählt. Wie ist der Methodenname und was müssen wir als Parameter in die Methode mitgeben?
  2. Das ist die Methode für die Liste. Wie heißt die Methode für die HashMap?
  3. Du hast gerade mit einer Methode gearbeitet: split(). Und du arbeitest gerade in der Main()-Methode. Methoden sind Funktionseinheiten (sog. Unterprogramme), die etwas tun. split() splittet den string und die add()-Methode der Liste fügt etwas in die Liste ein und welche Methode gibt es nun, etwas in die HashMap einzufügen? Und wie muss sie aufgerufen werden?
  4. Bingo. Also haben wir jetzt alle Informatinen, die wir brauchen, um die HashMap zu füllen. Ja, jetzt kommt die HashMap. Um das etwas zu vereinfachen, sage ich erstmal, dass die Matrikelnummer kein integer ist, sondern ein string. Wir haben dann folgende HashMap: HashMap<string, string> studentenDaten = new HashMap<string, string>(); Der Schlüssel (Key) ist die Matrikelnummer und er Wert (Value) ist das Lieblingsfach. Mit welcher Methode können wir nun Werte in die HashMap schreiben und wie muss der Aufruf, der Methode aussehen, wenn segs[1] die Matrikelnummer und segs[2] das Lieblingsfach ist?
  5. Genau, wir fangen aber bei 0 an zu zählen. Somit ist segs[2] das Lieblingsfach. Wie kann man nun also auf die Matrikelnummer zugreifen?
  6. 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.
  7. 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?
  8. 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?
  9. 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.
  10. 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!
  11. 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?
  12. 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.
  13. 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.
  14. 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").
  15. 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?
  16. Schaue dir doch deine for-schleife an. Wann sollst du i auf dem Bildschirm ausgeben?
  17. Wie lautet überhaupt die Aufgabe? Auch diese Frage wurde hier schon oft gestellt und immer von dir ignoriert.
  18. 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.
  19. 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.
  20. Ich würde vorschlagen, mit einem Tutorial anzufangen. So wird das nichts. Der komplette Code macht überhaupt keinen Sinn.
  21. Whiz-zarD

    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")) { ... }
  22. Whiz-zarD

    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.
  23. Whiz-zarD

    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.
  24. 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.
  25. 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.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...