Arrayer och generera lösenord
Uppgiften jag har problem med är att jag ska skriva en metod som skapar en array av char som ska generera lösenord som är mellan 8-12 tecken långt, innehåller minst en liten och en stor bokstav, och minst en siffra 0-9.
Sedan ska jag skriva en main och testa metoden, samt loopa den och generera 100 lösenord.
Min kod:
import java.util.Random;
class Password {
public static char[] generatePassword( ) {
char[] options = {'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',
'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','0','1','2','3','4','5','6','7','8','9',
'!','@','#','$','%','^','&','*','_','=','+','-','/'};
char[] randomPassword = new char [12];
Random r = new Random();
for(int i = 0; i < 12; i++) {
randomPassword[i] = options[r.nextInt(options.length)];
}
}
public static void main(String[] args) {
for(int i = 0; i < 100; i++) {
System.out.print(Password.generatePassword(randomPassword[i]));
}
}
}
När jag kompilerar får jag error på randomPassword i sista raden där jag försöker skriva ut alla lösenorden, vet inte om jag missat eller glömt något, uppskattar alla tips!
Du försöker skicka med argument i main-metoden. Din metod generatePassword tar inga argument. Du kan ta bort så att det endast står "System.out.println(generatePassword());" i main-metoden. Eftersom metoden generatePassword ska returnera char[] så behöver du skriva "return randomPassword" efter for-loopen!
Sedan för att uppfylla kravet om 8-12 tecken, liten och stor bokstav och siffra, så behöver du dela upp options. Gör tre olika 4 olika med diverse tecken!
Lycka till :)
Jag ändrade lite i koden och har nu denna kod:
class Passwords{
//Method to generate password
public static char[] generatePassword(char[] rndPw){
rndPw = new char [12]; //Array
String lower = "abcdefghijklmnopqrstuvwxyz";
String upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String digits = "0123456789";
String options = lower + upper + digits;
//Loop and assign to array
for(int i = 0; i < rndPw.length; i++){
Random rnd = new Random();
char c = options.charAt(rnd.nextInt(options.length()));
rndPw[i] = c;
}
return rndPw;
}
//Main
public static void main(String[] args){
char[] a = generatePassword(rndPw);
System.out.println(a);
}
}
Koden funkar som den ska när jag bara testar den i min main utan arrayen, men får error när jag försöker kompilera denna kod :/
Visa det exakta felmeddelandet, säg inte bara att det blir "error".
Fick error angående argumentet när jag försökte kalla på metoden i min main, (required: char[] - Found: no arguments) men löste det genom att ta bort argumentet från metod-raden och nu funkar det som det ska!