一、问题藐视
随机打印50个随机(4-10长度)的字符串,
* 要求字符串包含的范围是所有的英文字母包含大小写和数字,
* 按照编码顺序排序,每行打印4个,要求首字符对齐
二、算法分析
public static String gen(int length) {
char[] ss = new char[length];
int i = 0;
while (i < length) {
int f = (int) (Math.random() * 3);
if (f == 0)
ss[i] = (char) ('A' + Math.random() * 26);
else if (f == 1)
ss[i] = (char) ('a' + Math.random() * 26);
else
ss[i] = (char) ('0' + Math.random() * 10);
i++;
}
return new String(ss);
}
测试:
public static void main(String[] args) {
Set<String> strSet = new HashSet<String>();
for (int i = 0; i < 50; i++) {
strSet.add(Main5.gen(5));
}
int count = 1;
for (String s : strSet) {
System.out.print(s + " ");
if (count % 4 == 0) {
System.out.println();
}
count++;
}
}
结果:
338qT 3KbfM Z2Am1 iZr80
QUoYI Jyh82 XkQ58 BJ5iU
eIg1e 5e3DK ikMXs 8304Z
743Wv ZSkOx jMPc8 W2wi7
VSYYV 9Oy3Q tPr03 9784N
88dgC 753Ag 6eckB 3hp5a
2Ha9f qhs1o Ipw7m M3pYv
e2x8E dcdc9 t22X3 7D7J3
pI1CR A22wF 222iB YQe74
MNh8D 30o1v 5QSe0 4j24B
V2m05 NVsK6 YJxpl cxWPp
mB6cw XKwj0 I6NSO HsvPK
Br83g STii4