常规思路生成随机的字符串

来源:6-5 应用 Collections.sort() 实现 List 排序

小肠杆君

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();
	}


    我的生成随机字符串的思路很简单,也很常规。在问答里有很多童鞋的思路算法非常有创造性,在这里要向他们学习。

写回答 关注

1回答

  • 3000sama
    2016-01-15 11:06:40

    我的思路和你差不多,不过我是通过ASII码表来构造字符串的,通过随机数字对应的char类型来获取字符,用一个新的String类对象来接收char的内容,再完成String的拼贴,从而得到随机长度的随机字符条

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题