Я новичок в java, и мне интересно, как мне добавить параметры в свой генератор паролей, такие как «Сколько цифр вы хотите?» или "Сколько символов вам нужно?" в сгенерированном пароле.
Это код, который у меня есть на данный момент, и мне нужна помощь в том, как я бы это сделал.
Заранее спасибо.
public static void main(String[] args) {
String result = generatePassword(10);
System.out.println(result);
}
public static String generatePassword(int length) {
String password = "";
for (int i = 0; i < length - 2; i++) {
password = password + randomCharacter("abcdefghijklmnopqrstuvwxyz");
}
String randomDigit = randomCharacter("0123456789");
password = insertAtRandom(password, randomDigit);
String randomSymbol = randomCharacter("!#$%&'()*+,-.:<=>?@[}^_{}~");
password = insertAtRandom(password, randomSymbol);
String randomCapital = randomCharacter ("ABCDEFGHIJKLMNOPQRSTUVWXYZ");
password = insertAtRandom(password, randomCapital);
System.out.println("This is your new password:");
return password;
}
public static String randomCharacter(String characters) {
int n = characters.length();
int r = (int) (n * Math.random());
return characters.substring(r, r + 1);
}
public static String insertAtRandom(String str, String toInsert) {
int n = str.length();
int r = (int)((n + 1) * Math.random());
return str.substring(0, r ) + toInsert + str.substring(r);
}
}
См. stackoverflow.com/questions/5287538/…




Один из способов сделать это - передать несколько параметров?
т.е.
generatePassword(int length, int noDigits, int noSymbols)
Затем замените randomDigit
for (int i = 0; i < noDigits - 2; i++) {
password = password + randomCharacter("0123456789");
}
Или же
for (int i = 0; i < noSymbols - 2; i++) {
password = password + randomCharacter("!#$%&'()*+,-.:<=>?@[}^_{}~");
}
Если вам нужен ввод пользователя, вы можете попробовать JOptionPane, например:
int digits = Integer.parseInt(JOptionPane.showInputDialog("How many digits?"));
Помимо этого, я думаю, что ваше решение и так кажется прекрасным. Продолжайте практиковаться!
ваше решение кажется нормальным, я не понял ваш вопрос, вы спрашиваете, как получить ввод от пользователя?