Zufälliges Alphabet erzeugen

StrikeTom

Bekanntes Mitglied
Hi Leute,
ich stehe momentan echt auf dem Schlauch:bahnhof::
Mein Ziel ist es einen String zu erzeugen, welcher jeden Buchstaben des Alphabets einmal
in einer zufälligen reinfolge enthällt.
Das klapt auch fast, nur enthällt der String, welchen meine Funktione zurückgibt kein "z"
Mein Code:
Java:
public String randAlpha(){
		char[] letter = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
		ArrayList<Character> letterlist = new ArrayList<Character>();
		for(int i = 0; i < letter.length; i++){
			letterlist.add(letter[i]);
		}
		String alphas = "";
		for(int i = 0, j = letter.length; i < letter.length; i++, j--){
			int rnd = (int)(Math.random()*j);
			alphas += letterlist.get(rnd);
			letterlist.remove(rnd);
		}
		return alphas;
	}
Weiß jemand, wo der Fehler liegt?
Danke im Vorraus😉
 
hab es mal getestet und bei mir ist immer ein z drin, aber der code ist weder effektiv noch ist das Ergebnis wirklich zufällig
 
Abend.

Ich habe den Code mehrfach durchlaufen lassen und konnte immer alle Buchstaben sehen. Du wirst ihn wohl einfach nur übersehen haben 😉
 
nur nen kleiner Tipp du kannst das auch so mixen:

Java:
Collections.shuffle(letterlist);
String rueck="";
for(int i=0;i<letterlist.size();i++){
      rueck+=letterlist.get(i);
}
 
Etwas einfacheres als folgendes Beispiel fällt mir auf die Schnelle auch nicht ein.
Java:
public String randAlpha() {
    List<Character> chars = new ArrayList<Character>();
    for (char c = 'a'; c <= 'z'; c++) {
        chars.add(c);
    }
    Collections.shuffle(chars);
    StringBuilder sb = new StringBuilder();
    for (char c : chars) {
        sb.append(c);
    }
    return sb.toString();
}
Falls du das Array beibehalten willst, funktioniert auch:
Java:
public String randAlpha() {
    List<Character> chars = Arrays.asList('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
            'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z');
    // ...
}
 

Neue Themen


Zurück
Oben