哪位大神指導(dǎo)一下關(guān)于創(chuàng)建對象的位置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循環(huán)里面創(chuàng)建,如果在for外面創(chuàng)建的話生成的隨機(jī)字符串他就會自動排序好了?這是為什么?
2018-10-26
我是寫在循環(huán)外面的,最開始也有問題,看控制臺輸出,是因為每次創(chuàng)建完字符串后,不處理StringBuffer對象的話,下次創(chuàng)建的是直接加在后面的;
所以樓主寫里面,每次都新new一個沒問題
寫外面的話,創(chuàng)建完后,要清空一下
2018-09-18
num1 在調(diào)用隨機(jī)函數(shù)的時候為什么要在后面+1呢? 加一和不加一好像沒什么區(qū)別啊
2018-09-18
懂了!