生成随机字符串的思路:
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的拼贴,从而得到随机长度的随机字符条