Eingabe in zufälliger Reihenfolge ausgeben

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Eingabe in zufälliger Reihenfolge ausgeben

    Hallo zusammen.
    Ich möchte ein Programm schreiben, das mehrere Strings einliest und dann in einer zufälligen Reihenfolge wieder ausgibt. Das Einlesen klappt, allerdings habe ich keine Ahnung, wie das mit der Zufallsausgabe gehen soll. Achja jeder String sollte natürlich nur einmal ausgegeben werden. Kann mir da jemand helfen?
    Danke schonmal
    mfg
    der Neue
  • Hallo,
    im Thread zum Kartenspiel gab es eine ähnliche Problematik, die
    "Java-Profi", wie ich finde, sehr elegant gelöst hat:
    Kartenspiel problem mit compareTo

    Ich vermute du packst Deine Strings in ein Array.
    Mache eine Liste draus, mische sie, und konvertiere, falls
    gewünscht, wieder in ein Array zurück:

    Quellcode

    1. import java.util.Arrays;
    2. import java.util.Collections;
    3. import java.util.List;
    4. String[] x= {"Eins","Zwei","Drei"};
    5. List<String> blah = Arrays.asList(x);
    6. Collections.shuffle(blah);
    7. x = blah.toArray(new String[x.length]);
    8. for ( int y=0;y<x.length;y++) {
    9. System.out.println(x[y]);
    10. }
    Alles anzeigen
  • Also ich habe gemeint, dass man zwischen den zufälligen Ausgaben noch einen festen Text reinpackt. Zum Beispiel: 6 Eingaben werden gemacht, am Schluss werden die folgendermassen ausgegeben:
    "Die erste Gruppe ist:" (Fester Text, der immer an dieser Stelle erscheint)
    "Zufallsausgabe 1"
    "Zufallsausgabe 2"
    "Die zweite Gruppe ist:" (Fester Text, der immer an dieser Stelle erscheint)
    "Zufallsausgabe 3"
    "Zufallsausgabe 4"
    "Die dritte Gruppe ist:" (Fester Text, der immer an dieser Stelle erscheint)
    "Zufallsausgabe 5"
    "Zufallsausgabe 6"
    Ich danke dir schon mal für deine Bemühungen. Hoffe du weisst, was ich meine.
  • Für sowas ist der Modulos-Operator (%), der den Rest einer Division zweier
    ganzen Zahlen liefert, ideal.

    Quellcode

    1. String[] gruppe = {"erste","zweite","dritte"};
    2. String[] x= {"Eins","Zwei","Drei","Vier","Fünf","Sechs"};
    3. int zähler=0;
    4. for ( int y = 0; y < x.length; y++) {
    5. if(y % 2 == 0 ) {
    6. System.out.println("Die "+gruppe[zähler]+" Gruppe ist: ");
    7. zähler++;
    8. }
    9. System.out.println("Zufallsausgabe "+ (y+1) +" : "+ x[y] );
    10. }
    Alles anzeigen