Zum Inhalt springen

Whiz-zarD

Mitglieder
  • Gesamte Inhalte

    2076
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    51

Alle Inhalte von Whiz-zarD

  1. 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?
  2. 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.
  3. 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!
  4. 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?
  5. 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.
  6. 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.
  7. 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").
  8. 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?
  9. Schaue dir doch deine for-schleife an. Wann sollst du i auf dem Bildschirm ausgeben?
  10. Wie lautet überhaupt die Aufgabe? Auch diese Frage wurde hier schon oft gestellt und immer von dir ignoriert.
  11. 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.
  12. 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.
  13. Ich würde vorschlagen, mit einem Tutorial anzufangen. So wird das nichts. Der komplette Code macht überhaupt keinen Sinn.
  14. 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")) { ... }
  15. 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.
  16. 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.
  17. 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.
  18. 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.
  19. @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.
  20. 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());
  21. 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?
  22. 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.
  23. 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.
  24. Was hast du denn mit der Map vor? Die brauchst du nicht. Mach einfach eine Liste von Studenten anstatt eine Liste von Strings. So schwer ist es doch nicht mehr. List<Student> studentenDaten = new ArrayList<Student>(); studentenDaten.add(new Student("Test", 111111, "Fach1")); ...
  25. Jetzt kannst du doch eine Liste von Studenten erstellen, anstatt eine Liste von String. Ein Student erzeugst du dann mit dem new-Operator: new Student("Test", 111111, "Fach1"); Dann kannst du einfach über die Liste iterieren und pro Student die toString()-Methode aufrufen: for(Student student : studentenDaten) { System.out.println(student.ToString()); }

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