为了账号安全,请及时绑定邮箱和手机立即绑定

哪位大神指导一下关于创建对象的位置StringBuilder sr=new StringBuilder();



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外面创建的话生成的随机字符串他就会自动排序好了?这是为什么?

正在回答

3 回答

我是写在循环外面的,最开始也有问题,看控制台输出,是因为每次创建完字符串后,不处理StringBuffer对象的话,下次创建的是直接加在后面的;

所以楼主写里面,每次都新new一个没问题

写外面的话,创建完后,要清空一下

0 回复 有任何疑惑可以回复我~

num1 在调用随机函数的时候为什么要在后面+1呢? 加一和不加一好像没什么区别啊

0 回复 有任何疑惑可以回复我~

懂了!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

哪位大神指导一下关于创建对象的位置StringBuilder sr=new StringBuilder();

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信