package com.seave;
import java.util.ArrayList;
import java.util.Random;
/**
* @author Seave
* date 2005-12-09 17:28
* 自动生成由a-z,A-Z,0-9组成的八位随机密码
*
*/
public class TestRandom
{
private static Random random = new Random();
private static final int length = 8;
private static String value = "a-zA-Z0-9";
private static ArrayList lower = null;
private static ArrayList upper = null;
public static void main(String[] args)
{
getRandom();
}
private static final float getFloat() {
return random.nextFloat();
}
private static final String getRandom()
{
TestRandom thisc = new TestRandom();
thisc.setCharset();
String randomstr = "";
try
{
//建立一个random字符串
for (int i = 0; i < length; i++) {
// 取得随机偶数和随机奇数
if (((int) (getFloat() * 100)) % 2 == 0) {
randomstr = randomstr + randomChar((Character)lower.get(2),
(Character)upper.get(2)).toString();
} else {
if (((int) (getFloat() * 100)) % 2 == 0)
{
randomstr = randomstr + randomChar((Character)lower.get(1),
(Character)upper.get(1)).toString();
}
else
randomstr = randomstr + randomChar((Character)lower.get(0),
(Character)upper.get(0)).toString();
}
}
System.out.println(randomstr);
}
catch(Exception e)
{
e.printStackTrace();
}
return randomstr;
}
private static final Character randomChar(Character lower, Character upper) {
int tempval;
char low = lower.charValue();
char up = upper.charValue();
tempval = (int)((int)low + (getFloat() * ((int)(up - low))));
return (new Character((char) tempval));
}
public final void setCharset()
{
System.out.println("start setCharset ...");
boolean more = true;
lower = new ArrayList(3);
upper = new ArrayList(3);
if ((value.charAt(1) == '-') && (value.charAt(0) != '//')) {
while (more && (value.charAt(1) == '-')){
if (value.charAt(0) == '//')
break;
else {
lower.add(new Character(value.charAt(0)));
upper.add(new Character(value.charAt(2)));
}
if (value.length() <= 3)
{
more = false;
}
else
{
value = value.substring(3);
}
}
}
if ((lower == null))
setCharset();
}
}