常規(guī)思路生成隨機(jī)的字符串
生成隨機(jī)字符串的思路:
1.生成字符串的隨機(jī)長度
2.構(gòu)造一個(gè)裝有a-z,A-Z.0-9的基礎(chǔ)字符數(shù)組
3.從基礎(chǔ)字符數(shù)組中隨機(jī)取出一個(gè)字符,放入StringBuffer類的一個(gè)內(nèi)容可變的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;
/**
?*?生成內(nèi)容隨機(jī)且長度為(1-10)以內(nèi)的隨機(jī)的字符串
?*/
public?static?String?getRandomString(){
Random?random?=?new?Random();
//?生成1-10以內(nèi)的隨機(jī)數(shù)
int?stringlength?=?random.nextInt(STRINGLENGTH)+1;
//?生成stringlength長度的隨機(jī)字符串
//?基本字符串
String?BaseString?=?"qwertyuiopasdfghjklzxcvbnm1234567890"
+?"QWERTYUIOPASDFGHJKLZXCVBNM";?
//?構(gòu)造長度內(nèi)容可變的字符串對象sb,用來承裝取出的隨機(jī)字符
StringBuffer?sb?=?new?StringBuffer();
for(int?i?=?0;?i?<?stringlength;?i++){
//?從基本字符組中隨機(jī)抽出一個(gè)字符的所在位置
int?num?=?random.nextInt(BaseString.length());
//?將BaseString中特定位置上的字符取出放入字符串sb中
sb.append(BaseString.charAt(num));
}
//?將StringBuffer類型的sb轉(zhuǎn)換成String類型返回
return?sb.toString();
}
public?void?testSort3(){
//?創(chuàng)建一個(gè)泛型為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();
}????我的生成隨機(jī)字符串的思路很簡單,也很常規(guī)。在問答里有很多童鞋的思路算法非常有創(chuàng)造性,在這里要向他們學(xué)習(xí)。
2016-01-15
我的思路和你差不多,不過我是通過ASII碼表來構(gòu)造字符串的,通過隨機(jī)數(shù)字對應(yīng)的char類型來獲取字符,用一個(gè)新的String類對象來接收char的內(nèi)容,再完成String的拼貼,從而得到隨機(jī)長度的隨機(jī)字符條