司空曙
2015-09-01 10:39
public static void testSort3(){
List<String> list3 = new ArrayList<String>();//储存所有字符串
Set<String> setString = new HashSet<String>();//用于选择不同的字符串
String newst = new String(); //储存当前得到的字符串
Random rand = new Random(); //产生10以内随机数。用于字符串控制长度
StringBuffer sb= new StringBuffer(); // 可以变动的字符型
StringBuffer buf = new StringBuffer("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"); // 字符组合的基
int m = 0; //m控制字符串的数量
while (m<10){
do{
//字符串长度在10以内。达到该长度前进行for循环
for(int i = 0; i < rand.nextInt(10); i ++){
//定义一个变量,取得buf字符组合基的长度
int num = buf.length();
//往空的字符串 sb 的末端加入单个元素。该元素从buf组合基中随机取得
sb.append(buf.charAt(rand.nextInt(num)));
}//do结束
//将sb可变动类型转换成字符串型
newst= sb.toString();
//若setString中已包含该对象,重新进行do操作
}while (setString.contains(newst));
//往Set接口下的setString中添加该对象
setString.add(newst);
//往List接口下的list3中添加该字符串
list3.add(newst);
System.out.println("成功添加:"+newst);
//可变更类型的 sb 字符串 清空,用于下一次操作
sb= new StringBuffer();
m++;
}
System.out.println("============排序前==========");
for (String in : list3){
System.out.println("元素:"+ in);
}
System.out.println("----------------------排序后---------------------");
Collections.sort(list3);
for (String in : list3){
System.out.println("元素:"+ in);
}
}自己写的代码。如有不足请指教一二。十分感谢!
//生成字符表
public void generatorAlphabeta(List<Character> list,char st,char ed){
for(char c= st;c<=ed;c++){
list.add(c);
}
}
public void testSort2(){
List<String> stringList = new ArrayList<String>();
List<Character> subList = new ArrayList<Character>();
generatorAlphabeta(subList, 'a', 'z');//将a-z加入字符表
generatorAlphabeta(subList, 'A', 'Z');//将A-Z加入字符表
generatorAlphabeta(subList, '0', '9');//将0-9加入字符表
//随机生成字符串
String str = "";
Random random = new Random();
for (int j = 0; j < 10; j++) {
str = "";
while(true){
for (int i = 0; i < random.nextInt(10); i++) {
double randomNum = 0.0;
int index = 0;
index = random.nextInt(62);
str = str + subList.get(index);
}//生成小于10长度的字符串
if(!str.equals("") && !stringList.contains(str)) break;//不为空且不重复就跳出字符串生成
}
stringList.add(str);//10条字符串
}
System.out.println("-----------排序前-----------");
for (String string : stringList) {
System.out.println("字符串:"+string);
}
Collections.sort(stringList);
System.out.println("-----------排序后-----------");
for (String string : stringList) {
System.out.println("字符串:"+string);
}
}Java入门第三季
409776 学习 · 4546 问题
相似问题