G
Guest
Gast
Hallo !
Ich plane folgendes umzusetzen. Ich möchte erstens ein Array mit zehn Stringfeldern erzeugen. Dieses Stringarray soll dann gemischt werden und dann an ein neues Array weitergegeben werden. Vorher soll überprüft werden, ob vielleicht Textinhalte aus dem ersten Array vielleicht schon im "gemischten Array" bereits vorhanden sind. Ist das der Fall, dann soll der Vorgang wiederholt werden, bis es fertig und komplett gemischt wurde. Leider erhalte ich immer wieder null-arrays und doppelte Einträge, ich verstehe nicht warum. Vielleicht könnt ihr ja einen Blick auf den Code werfen.
Ich plane folgendes umzusetzen. Ich möchte erstens ein Array mit zehn Stringfeldern erzeugen. Dieses Stringarray soll dann gemischt werden und dann an ein neues Array weitergegeben werden. Vorher soll überprüft werden, ob vielleicht Textinhalte aus dem ersten Array vielleicht schon im "gemischten Array" bereits vorhanden sind. Ist das der Fall, dann soll der Vorgang wiederholt werden, bis es fertig und komplett gemischt wurde. Leider erhalte ich immer wieder null-arrays und doppelte Einträge, ich verstehe nicht warum. Vielleicht könnt ihr ja einen Blick auf den Code werfen.
Code:
public class test{
public static void main(String[] args){
int durchläufe = 1;
String[] array = new String[10];
String[] mix = new String[10];
for(int i = 0; i < array.length; i++){
array[i] = "arrayspeicherplatz nummer " + i;
System.out.println(array[i]);
}
System.out.println();
System.out.println();
for(int i = 0; i < mix.length; i++){
int index = (int)(Math.floor(Math.random() * (9-0+1)));
checkArray(i, durchläufe, mix, index, array);
System.out.println(mix[index]);
}
}
public static void checkArray(int i, int durchläufe, String[] mix, int index, String[] array){
boolean fortsetzen;
mix[i] = "";
if(durchläufe == 1){
mix[i] = array[index];
durchläufe++;
}
else{
do{
if(! mix[i].equals(array[index])){
mix[i] = array[index];
fortsetzen = false;
}
else{
fortsetzen = true;
index = (int)(Math.floor(Math.random() * (9-0+1)));
}
}while(fortsetzen);
}
}
}