• 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

Lapura

Kuhfänger
Registriert
28 Dezember 2014
Beiträge
73
Alter
26
Diamanten
314
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?
 

Nightishaman

Kuhfänger
Registriert
3 Januar 2015
Beiträge
51
Alter
25
Diamanten
300
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.
 

Lapura

Kuhfänger
Registriert
28 Dezember 2014
Beiträge
73
Alter
26
Diamanten
314
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.


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

cringekachu

genervtes Glumanda
Ehem. Teammitglied
Registriert
1 Mai 2013
Beiträge
90
Diamanten
305
Minecraft
cringekachu
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.
 
D

Drayke

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

Watteschaf

Redstoneengineer
Registriert
2 November 2013
Beiträge
40
Diamanten
0
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.

Aber warum sollte er das tun, wenn seine Liste eh immer nur ein Element enthält?
 
D

Drayke

Guest
Aber warum sollte er das tun, wenn seine Liste eh immer nur ein Element enthält?
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:

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
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.
 

Chrisliebär❤️

nur echt mit ❤️
Moderator
Registriert
19 Mai 2014
Beiträge
1.675
Diamanten
830
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.
 

Baba43

Ehem. Teammitglied
Ehem. Teammitglied
Registriert
5 November 2012
Beiträge
869
Diamanten
60
Minecraft
baba43
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.
 
Oben