Hét vraag- en antwoordplatform van Nederland

hoe kan ik een random code generen in java zonder dubbele letters?

ik moet een random letter combinatie generen in java ( a-f).
hoe kan ik er voor zorgen dat er geen dubbele letters zitten in mijn combinatie? dit is mijn code tot nu toe
public String generatecode() {

Random rand = new Random();

String code = "";

for (int i = 0; i < 4; i++) {
int var = rand.nextInt(6) + 1;
var = var + 64;
code = code + (char) var;



}
return code;

Verwijderde gebruiker
7 jaar geleden
1.4K
Verwijderde gebruiker
7 jaar geleden
Ik spreek geen java, maar mijn idee zou zijn
i.p.v. een for loopje een while loopje, die je doorloopt als de string nog niet de lengte 4 heeft. en voor je een letter toegevoegd eerst controleren of deze al in de string zit Maar er zijn vele wegen die naar Rome leiden

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (1)

Met de suggeste van iHave kom ik (ongetest) op dit:

char var;
for (int i = 0; i < 4; i++) {
do { var = (char)(rand.nextInt(6) + 65); }
while(code.indexOf(var) >= 0);
code = code + var;
}
return code;

Let op dat als je een code van meer dan 6 karakters wilt genereren, deze functie in een oneindige lus komt. Een veiligere aanpak zou zijn om een array van de beschikbare letters te maken en daar steeds eentje random uithalen.
(Lees meer...)
Verwijderde gebruiker
7 jaar geleden

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 5000
Gekozen afbeelding