小肠杆君
2015-05-14 19:35
生成随机字符串的思路:
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();
}我的生成随机字符串的思路很简单,也很常规。在问答里有很多童鞋的思路算法非常有创造性,在这里要向他们学习。
我的思路和你差不多,不过我是通过ASII码表来构造字符串的,通过随机数字对应的char类型来获取字符,用一个新的String类对象来接收char的内容,再完成String的拼贴,从而得到随机长度的随机字符条
Java入门第三季
409776 学习 · 4546 问题
相似问题