为了账号安全,请及时绑定邮箱和手机立即绑定

这是我的代码

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


正在回答

2 回答

while条件好像写错了,个人认为应该是while(!st.contains(a))

0 回复 有任何疑惑可以回复我~

有两个建议:

  1. 建议把int c=random.nextInt(10)+1;      改成int c=random.nextInt(9)+1;      这样就不会生成11位的String了。

  2. 建议把int t=random.nextInt(61);       改成int t=random.nextInt(b.length()-1);     这样程序更加灵活一些。

0 回复 有任何疑惑可以回复我~
#1

Dust2

random.nextint(10)的意思不是随机生成大于等于0小于10的整形数么0.0 这样的话应该不会去到11吧
2015-11-30 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

这是我的代码

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信