具有特殊要求的Java过程生成器
我只需要一个有特殊要求的密码生成器。 我做了这个密码。它工作得很好,但是如何从这个字符串中只提取2个特殊字符-只有2位数字-只有3个小写字符-只有3个大写字符具有特殊要求的Java过程生成器,java,arrays,Java,Arrays,我只需要一个有特殊要求的密码生成器。 我做了这个密码。它工作得很好,但是如何从这个字符串中只提取2个特殊字符-只有2位数字-只有3个小写字符-只有3个大写字符 private static void passGenerator(){ int length = 8; String symbol = "-/.^&*_!@%=+>)"; String cap_letter = "ABCDEFGHIJKLMNOPQ
private static void passGenerator(){
int length = 8;
String symbol = "-/.^&*_!@%=+>)";
String cap_letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String small_letter = "abcdefghijklmnopqrstuvwxyz";
String numbers = "0123456789";
String finalString = cap_letter + small_letter +
numbers + symbol;
Random random = new Random();
char[] password = new char[length];
for (int i = 0; i < length; i++)
{
password[i] = finalString.charAt(random.nextInt(finalString.length()));
}
System.out.println(password);
}
private static void passGenerator(){
整数长度=8;
字符串符号=“-/.^&*.@%=+>)”;
字符串cap_letter=“abcdefghijklmnopqrstuvxyz”;
字符串小写字母=“abcdefghijklmnopqrstuvwxyz”;
字符串编号=“0123456789”;
字符串finalString=大写字母+小写字母+
数字+符号;
随机=新随机();
字符[]密码=新字符[长度];
for(int i=0;i
您可以通过以下方式尝试此库。有一些有用的方法可以按大小写不同的字符将字符串拆分为数组(a3将是a,3)您可以通过以下方式尝试此库。有一些有用的方法可以将字符串拆分为按不同大小写的字符数组(a3将是a,3)我将首先按特定顺序生成密码并将其存储在临时变量中,如下所示:
{ special1, special2, digit1, digit2, lower1, lower2, lower3, upper1, upper2, upper3}
这可能需要硬编码
接下来,我将创建一个新的密码变量,然后逐个选择一个字符并将其添加到新变量中。通过随机生成一个数字来实现这一点[0,temp.length)。然后,将该索引处的字符复制到新密码中未填充的最低位置,将其从temp中删除,并将所有剩余字符复制到一个新的temp数组中,即一个较小的元素。重复此操作,直到temp数组大小为零。我将首先按特定顺序生成密码,并将其存储在一个临时变量中,例如l例如:
{ special1, special2, digit1, digit2, lower1, lower2, lower3, upper1, upper2, upper3}
这可能需要硬编码
接下来,我将创建一个新的密码变量,然后逐个选择一个字符并将其添加到新变量中[0,temp.length)。然后,将该索引处的字符复制到新密码中未填充的最低位置,将其从temp中删除,并将所有剩余字符复制到一个新的temp数组中,即一个较小的元素。重复此操作,直到temp数组大小为零