这个random不太冷
做一道简单的java练习:要求是输入10个随机字符串(0-9,A-Z,a-z),它们彼此不能够重复.对于每一个随机字符串,它的长度是随机的(例如在1-10当中选取).
0.解题思路
10个字符串,使用遍历就ok了.而对于每一个随机长度随机字符的字符串,需要使用内层循环来完成.那么怎样确定字符串集合中包含当前产生的字符串呢?如果使用ArrayList容器,那么就可以使用contains方法来判断.
1.代码Implemention
// 创建10条随机字符串
List<String> myList = new ArrayList<String>();
for (int i = 0; i < 10; i++) {
// 一个存储合法字符的字符串
String str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
// 产生随机长度,在1-10之间
int randomLen = (int)(Math.random() * 10 + 1);
StringBuilder curString = new StringBuilder();
for (int j = 0; j < randomLen; j++) {
curString.append(str.charAt((int)(Math.random()*62)));
}
// 如果结果集合中已经包含字符串,那么重新此次生成
if (myList.contains(curString.toString())) {
i--;
} else {
myList.add(curString.toString());
}
}
System.out.println("-----------排序前--------------");
for (String string : myList) {
System.out.println(string);
}
my