Probleme mit Strings

FabianLurz

Bekanntes Mitglied
Hey Leute,
hab mal wieder so meine Problemchen mit Strings. Das Programm war an sich schnell geschrieben und funktioniert theoretisch auch nur die Ausgabe nicht ganz. Hier mein Quellcode der Klasse.
Java:
package testat9;
public class Kartenspiel {

    private String[] Kartenspiel={"Eichel sieben","Eichel acht", "Eichel neun","Eichel zehn","Eichel Bube","Eichel Dame",
            "Eichel König","Eichel Ass","Blatt sieben", "Blatt acht","Blatt neun", "Blatt zehn","Blatt Bube", "Blatt Dame",
            "Blatt König", "Blatt Ass", "Schelle sieben", "Schelle acht","Schelle neun","Schelle zehn","Schelle Bube","Schelle Dame",
            "Schelle König","Schelle Ass", "Herz sieben","Herz acht","Herz neun","Herz zeh","Herz Bube","Herz Dame","Herz König",
             "Herz Ass"};

    private String[] Kartenspiel_misch={"Bla"};

    public void mischen(){

        for (int counter=0;counter<=1000;counter++){
            
            int i = (int) (Math.random()*100);
            int j = (int) (Math.random()*100);
         
            
            if(i<31 && j<31){
                
                Kartenspiel_misch[0]=Kartenspiel[i];
                Kartenspiel[i]=Kartenspiel[j];
                Kartenspiel[j]=Kartenspiel_misch[0];
                
            }
            
        }
           
    }

    public String toString(){
      
       
       return Kartenspiel.toString();
    }

}
Um euch den Quellcode ein bisschen zu erleichtern:
Es geht darum ein Kartenspiel zu mischen. Sollte eigentlich vom Prinzip her reicht einfach sein. Das Problem liegt nun in dem return. Ich zeig euch noch kurz meine main:

Java:
public class Main {

    public static void main(String[] args) {

       Kartenspiel Ks = new Kartenspiel();
       Ks.mischen();
       System.out.print(Ks.toString());
      

    }
    

}

So wenn ich nun das ganze aufrufe erscheint folgende nette Fehlermeldung:
[Ljava.lang.String;@42e816BUILD SUCCESSFUL (total time: 0 seconds)
Also es liegt natürlich an diesem "return Kartenspie.toString()";.
Diese ganzen Strings lassen sich irgendwie nicht richtig in einen umwandeln um eine schöne Ausgabe zu machen. Bitte um Hilfe😉 Habe echt schon viel gesucht und selbst meine doofen Bücher von der Uni bringen mir n Dreck^^
Lg Fab
 
in der toString müsstest du das Array selber durchlaufen und die Ausgabe erzeugen.
Und du könntest dir noch
Code:
Collections.shuffle
Methode anschauen.
 
Hey,
Ne das geht leider nicht. Habe das auch schon mit einer for-Schleife probiert aber wird ja immer nur ein return Statement zurückgegeben danach wird ja abgebrochen.
Das shuffle muss so sein ist leider eine Vorgabe des Profs. Danke dennoch😉
Lg

EDIT:
Weiß jetzt auf was du hinaus wolltest. Aber ein System.out in einem toString wäre nicht so schön. Wie gesagt es soll halt dieser Stringwulst (das Kartenspiel) in einen String gewandelt werden. Kann eigentlic gar nicht so schwer sein aber ich komm da leider nicht drauf🙁
 
Zuletzt bearbeitet:
Ich dachte eher an:
Java:
public String toString() {
  if (Kartenspiel.length==0) {
    return "[]";
  }
  String s = "[";
  for (String karte:Kartenspiel) {
    s+=karte+", ";
  }
  if (s.length()>0) {
    s=s.substring(0, s.length()-2);
    s+="]";
  }
  return s;
}
Oder gleich StringBuilder benutzer.
 
Hey,
ok da ich jetzt auch nicht mehr wirklich Lust habe darauf...muss ich ehrlich zugeben😉....sag ich danke😉
Funktioniert einwandfrei😉
 

Zurück
Oben