我正试图在以下具体条件下生成检察官办公室:
我试过以下方法
import java.security.SecureRandom;
import org.apache.commons.lang3.RandomStringUtils;
public class TestJava {
public static void main(String []args){
char[] allowedChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".toCharArray();
SecureRandom random = new SecureRandom();
int SIZE = 8;
// Try- 1
String opt1 = RandomStringUtils.random(SIZE, 0, 0, true, true, allowedChars, random);
// Try - 2
String opt2 = RandomStringUtils.randomAlphanumeric(8);
// Try - 3
String opt3 = RandomStringUtils.random(8, true, true);
}
}也尝试过来自https://www.techiedelight.com/generate-random-alphanumeric-password-java/的解决方案
但经过4-5的尝试,它是生成密码没有编号(S),即条件3是不满足的。
所以,请您告诉我如何实现给定的功能。谢谢。
发布于 2021-02-01 12:58:37
可以尝试以下操作,并在给定条件下生成字符串。
还可以对代码进行一些进一步的优化,但注意到每个字符在达到强制条件(除了长度为停止条件)后都有相当的发生概率。
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class RandomStr
{
public static void main(String args[])
{
RandomStr r = new RandomStr();
for(int i=0;i<10;i++)
System.out.println(r.new MyRandom().getRandom());
}
class MyRandom
{
char[] upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".toCharArray();
char[] lower = "abcdefghijklmnopqrstuvwxyz".toCharArray();
int Size = 8;
public String getRandom()
{
String str="";
boolean flag= true;
while(flag)
{
if(str.length()<2 && flag==true)
{
str+=(int)(10*Math.random());
flag = ((int)(2*Math.random())==1) ? true : false;
}
else
{
flag = false;
}
}
str += upper[(int)(upper.length*Math.random())];
str += lower[(int)(lower.length*Math.random())];
while(str.length()<8)
str+= ((int)(2*Math.random())==1) ? upper[(int)(upper.length*Math.random())] : lower[(int)(upper.length*Math.random())];
//reorder string
List<Character> list= new ArrayList<Character>();
char[] cList= str.toCharArray();
for(int i=0;i<cList.length;i++)
list.add(cList[i]);
Collections.shuffle(list);
str="";
for(char c: list)
{
str+=c;
}
return str;
}
}
}输出:
7OROFjHM
3Sn2jlki
QsTf6IYB
Ps09QrbN
93OdRlOX
6JBSdjdk
mg4Qtk0J
Dp31nHJQ
RrDnkYH5
Ik4ed3sehttps://stackoverflow.com/questions/65990470
复制相似问题