常規思路生成隨機的字符串
生成隨機字符串的思路:
1.生成字符串的隨機長度
2.構造一個裝有a-z,A-Z.0-9的基礎字符數組
3.從基礎字符數組中隨機取出一個字符,放入StringBuffer類的一個內容可變的String對象中
package?com.imooc.collection;
import?java.util.ArrayList;
import?java.util.Collections;
import?java.util.List;
import?java.util.Random;
public?class?CollectionsTest?{
public?static?final?int?STRINGLENGTH?=?10;
/**
?*?生成內容隨機且長度為(1-10)以內的隨機的字符串
?*/
public?static?String?getRandomString(){
Random?random?=?new?Random();
//?生成1-10以內的隨機數
int?stringlength?=?random.nextInt(STRINGLENGTH)+1;
//?生成stringlength長度的隨機字符串
//?基本字符串
String?BaseString?=?"qwertyuiopasdfghjklzxcvbnm1234567890"
+?"QWERTYUIOPASDFGHJKLZXCVBNM";?
//?構造長度內容可變的字符串對象sb,用來承裝取出的隨機字符
StringBuffer?sb?=?new?StringBuffer();
for(int?i?=?0;?i?<?stringlength;?i++){
//?從基本字符組中隨機抽出一個字符的所在位置
int?num?=?random.nextInt(BaseString.length());
//?將BaseString中特定位置上的字符取出放入字符串sb中
sb.append(BaseString.charAt(num));
}
//?將StringBuffer類型的sb轉換成String類型返回
return?sb.toString();
}
public?void?testSort3(){
//?創建一個泛型為String類的字符串列表
List<String>?stringlist?=?new?ArrayList<String>();
//?向該列表中添加字符串
for(int?i?=?0;?i?<?10;?i++){
stringlist.add(getRandomString());
}
System.out.println("--------------排序前--------------");
for(String?str?:?stringlist){
System.out.println("字符串:?"?+?str);
}
System.out.println("--------------排序后--------------");
Collections.sort(stringlist);
for(String?str?:?stringlist){
System.out.println("字符串:?"?+?str);
}
}
public?static?void?main(String[]?args)?{
CollectionsTest?ct?=?new?CollectionsTest();
ct.testSort3();
}????我的生成隨機字符串的思路很簡單,也很常規。在問答里有很多童鞋的思路算法非常有創造性,在這里要向他們學習。
2016-01-15
我的思路和你差不多,不過我是通過ASII碼表來構造字符串的,通過隨機數字對應的char類型來獲取字符,用一個新的String類對象來接收char的內容,再完成String的拼貼,從而得到隨機長度的隨機字符條