public void textSort3() {
List<String> l = new ArrayList<String>();
String s = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Random ran = new Random();
String str = null;
char[] c = null;
for (int x = 0; x < 10; x++) {
do {
//这里产生的随机数必须是1-10才行
int a = (int) (Math.random() * 9 + 1);
c = new char[a];
for (int i = 0; i < a; i++) {
//不用Random是因为随机数会产生0和上标越界的问题
c[i] = s.charAt((int) (Math.random() * 60) + 1);
}
str = String.valueOf(c);
} while (l.contains(str));
l.add(str);
System.out.println("成功添加字符串:" + str);
}
System.out.println("==========排序前==========");
for (String string : l) {
System.out.println("元素:" + string);
}
Collections.sort(l);
System.out.println("==========排序后==========");
for (String string : l) {
System.out.println("元素:" + string);
}
}
打开App,阅读手记
热门评论
你的随机数 Math.Random这个取得的是浮点型,强转为int 会掉浮点数的
这里为什么不要0!???
而且((Math.random() * 60) + 1)不会随机生成61呀。
应该改成c[i] = s.charAt((int)(Math.random()*62));才合理吧。