4 svar
72 visningar
josefinanord är nöjd med hjälpen!
josefinanord 104
Postad: 26 mar 2019

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!

gus1973 6
Postad: 26 mar 2019

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 :)

josefinanord 104
Postad: 28 mar 2019

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 :/

Laguna Online 4970
Postad: 28 mar 2019

Visa det exakta felmeddelandet, säg inte bara att det blir "error".

josefinanord 104
Postad: 28 mar 2019

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!

Svara Avbryt
Close