kopite
2015-11-07 21:47
List<String> st=new ArrayList<String>();
String b="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM0123456789";
Random random=new Random();
for(int i=0;i<10;i++){
String a="";
do{
//首先随机0~10的数字来确定长度
int c=random.nextInt(10)+1;
for(int j=0;j<c;j++){
//随机生成0-61的数字,取出b字符串里面相对应位置的字符添加到a里面
int t=random.nextInt(61);
a=a+b.charAt(t);
}
}while(st.contains(a));
st.add(a);
System.out.println("将要添加字符串:"+a);
while条件好像写错了,个人认为应该是while(!st.contains(a))
有两个建议:
建议把int c=random.nextInt(10)+1; 改成int c=random.nextInt(9)+1; 这样就不会生成11位的String了。
建议把int t=random.nextInt(61); 改成int t=random.nextInt(b.length()-1); 这样程序更加灵活一些。
Java入门第三季
409776 学习 · 4546 问题
相似问题