1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

String ArrayList

Dieses Thema im Forum "Spigot" wurde erstellt von Lapura, 11. Juni 2016.


  1. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    68
    Geschlecht:
    männlich
    Heeey ihr Programmierer, und zwar habe ich ein Problem bei einem 1vs1 Plugin. Das 1vs1 Plugin hat 3 Runden, und immer für die Gewinner kommen in eine ArryList mit einem String, und am Ende rufe ich diese Wieder auf und möchte den Namen ausgeben.
    Zeile:
    Bukkit.broadcastMessage(plugin.Prefix + "§7Runde 1: §e" + plugin.Runde1Sieger);

    Wenn das auf dem Server ausgegen wird dann zeigt es den Namen in [] an.
    Kann mir bitte jemand helfen?
     
  2. Nightishaman
    Offline

    Nightishaman

    Registriert seit:
    3. Januar 2015
    Beiträge:
    51
    Geschlecht:
    männlich
    Warum genau für nur einen Spieler eine ArrayList anlegen.
    Verwend doch mal ein bisschen OOP und mach dir ne Hilfsklasse z.B. Round
    Nun erstellt du in der Klasse ein String Objekt namens Winner.
    Das ist z.B. Nützlich wenn du mehr als nur ein Objekt speichern möchtest.
    Ansonsten einfach runde1sieger auf nen normalen String ändern.
     
    • Gefällt mir Gefällt mir x 1
  3. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    68
    Geschlecht:
    männlich

    Dann Meinst du plugin.Runde1Sieger.toString(); oder?
    Aber wennn du das meinst dann muss ich dich entteuschen weil ich das schon probiert habe und das klappt nicht...
     
  4. Glumandala
    Offline

    Glumandala Moderator Entwickler

    Registriert seit:
    1. Mai 2013
    Beiträge:
    89
    Geschlecht:
    männlich
    Minecraft:
    Glumandala
    Nein, das meint er nicht.
    Er meint, dass du anstatt einer ArrayList einen String verwenden sollst, da dies einfach sinnvoller ist, wenn du nur einen Spielernamen abspeichern möchtest.
     
  5. Drayke
    Offline

    Drayke

    Registriert seit:
    25. Juni 2015
    Beiträge:
    4
    Geschlecht:
    männlich
    Default wird die toString() (von der Object Klasse) Methode benutzt, wenn du eine ArrayList ausgeben lassen möchtest. Diese gibt eben die Klammern mit aus. Lösung: Mach dir eine eigene Container Klasse. Und dann(!) @Override der toString() Methode. In dieser machst du dann for(String s : ArrayListDerContainerKlasse){ returnString += ","+s; } return returnString;
    So sollte es gehen.
     
  6. Watteschaf
    Offline

    Watteschaf

    Registriert seit:
    2. November 2013
    Beiträge:
    41
    Aber warum sollte er das tun, wenn seine Liste eh immer nur ein Element enthält?
     
  7. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.065
    Geschlecht:
    männlich
    Poste bitte mal deine komplette(n) Klasse(n), damit ich da mal ordentlich durchblicke...
     
  8. Drayke
    Offline

    Drayke

    Registriert seit:
    25. Juni 2015
    Beiträge:
    4
    Geschlecht:
    männlich
    Ich dachte er hat 3 Gewinner? o_O
    Je Runde einer.

    Wenn es nur ein Gewinner ist, dann soll er die einfach in einem String speichern. Es gibt auch sehr schöne String Methoden mit denen man eigentlich alles machen kann was das Herz begehrt.
    Beispiel:
    Einen String der so aufgebaut ist:
    String winnerString = "Winner1/Winner2/Winner3";
    Könntest du auch zu einem Array machen:
    String[] winnerList = winnerString.split("/");
    winnerList[0] ist dann "Winner1";

    Also irgendwas für die Problem Lösung sollte nun dabei sein ^^
    Wenn nicht gibt es auch noch .remove("[").remove("]") .. das sollte auch gehen. Ist aber unelegant :p
     
    Zuletzt bearbeitet: 12. Juni 2016
  9. Baba43
    Online

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    644
    Das Problem, welches bereits korrekt festgestellt wurde, ist dass du ein Array ausgibst und kein Element aus diesem Array. Ich meine man kann sich auch logisch überlegen, dass das keinen Sinn macht, oder? Wenn du ein bestimmtes Element willst, musst du das auch angeben: Listen in Java.
     
    • Gefällt mir Gefällt mir x 1
  10. Lapura
    Offline

    Lapura

    Registriert seit:
    28. Dezember 2014
    Beiträge:
    68
    Geschlecht:
    männlich
  11. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    738
    Geschlecht:
    weiblich
    Vollkommen unabhängig zu deiner Frage führ dir das mal zu Gemüte: http://java.about.com/od/javasyntax/a/nameconventions.htm

    Wenn du drauf achtest, dass dein Code sauber formatiert ist und sich an Namenkonventionen hält erhöhst du nebenbei auch die Chance, dass sich jemand einen Code ansieht und deine Fehler findet.
     
    • Gefällt mir Gefällt mir x 1
  12. Baba43
    Online

    Baba43 Ehem. Teammitglied

    Registriert seit:
    5. November 2012
    Beiträge:
    644
    Dein Ansatz für deine Idee ist absolut umständlich.

    Einfaches Problem: Was ist, wenn dein Plugin anstatt drei Runden mal vier Runden unterstützen soll? Derzeit müsstest du fast jedes Feld und jede Methode noch einmal kopieren.

    Probiere mal bitte einen anderen Ansatz.. nur von der Idee her. Dann kann man dich auch näher an dein Ziel bringen, aber mit dem Stand müsste man das Plugin komplett neu schreiben.
     
    • Gefällt mir Gefällt mir x 1