能你所做
2018-09-17 23:56
public void testString() {
List<String> xs=new ArrayList<String>();
String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random=new Random();
for(int i=0;i<10;i++) {
StringBuilder sr=new StringBuilder();
do {
int num1=random.nextInt(10)+1;
for(int y=0;y<num1;y++) {
int num= random.nextInt(62);
sr.append(str.charAt(num));
}}while(xs.contains(sr));
xs.add(sr.toString());
}
System.out.println("-------排序前------------");
for (String string : xs) {
System.out.println(string);
}
System.out.println("-------------排序后-------------------------");
Collections.sort(xs);
for (String string : xs) {
System.out.println(string);
}
为什么StringBuilder sr=new StringBuilder();只能在for循环里面创建,如果在for外面创建的话生成的随机字符串他就会自动排序好了?这是为什么?
我是写在循环外面的,最开始也有问题,看控制台输出,是因为每次创建完字符串后,不处理StringBuffer对象的话,下次创建的是直接加在后面的;
所以楼主写里面,每次都新new一个没问题
写外面的话,创建完后,要清空一下
num1 在调用随机函数的时候为什么要在后面+1呢? 加一和不加一好像没什么区别啊
懂了!
Java入门第三季
409792 学习 · 4340 问题
相似问题