为了账号安全,请及时绑定邮箱和手机立即绑定

写得不好,求推荐更快捷方便的生成随机字符串的方法

package com.imooc.collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;

public class CollectionsTest {
    /**
	 * 练习题:利用Collections.sort()方法对泛型为String的List进行排序
	 * 要求:
	 * 1.创建完List<String>之后,往其中添加10条随机的字符串
	 * 2.每条字符串的长度为10以内
	 * 3.每条字符串的每个字符都为随机生成的字符,字符可以重复
	 * 4.每条随机字符串不可重复
	 * @param args
	 */
	public void testRandomStringSort(){
		List<String> strList = new ArrayList<String>();
		Random random = new Random();
		//包含0-9A-Za-z全部字符的字符串
		String allChar ="0123456789" 
				+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ" 
				+ "abcdefghijklmnopqrstuvwxyz";
		int strlen;	//字符串长度
		String str;	//生成的随机字符串
		for(int i = 0 ; i < 10 ; i++){
			do{
				strlen = random.nextInt(10)+1;
				//nextInt(k)返回的是区间[0,k)内的整数,所以要用nextInt(k)+1,返回的就是[1,10]的整数
				str = "";
				//通过字符串方法charAt(),返回在allChar字符串中随机位置(0-61)上的字符
				for(int j = 0 ; j < strlen ; j++){
					str = str +allChar.charAt(random.nextInt(61));
				}
			}while(strList.contains(str));
			strList.add(str);
			System.out.println("添加字符串:" + str);
		}
		System.out.println("------------排序前----------");
		for(String s : strList){
			System.out.println("字符串:" + s);
		}
		Collections.sort(strList);
		System.out.println("------------排序后----------");
		for(String s : strList){
			System.out.println("字符串:" + s);
		}
	}
	
	public static void main(String[] args) {
		CollectionsTest ct = new CollectionsTest();
                ct.testRandomStringSort();
	}

}


正在回答

3 回答

字符串不仅仅包括数字和大小写字母吧?@#¥%!这也是一个字符串吧?

0 回复 有任何疑惑可以回复我~

我觉得 写的 还不错啊,我就没写出来

0 回复 有任何疑惑可以回复我~

各位不好意思,链接已改为:http://yun.baidu.com/share/link?shareid=3414386292&uk=3610898735

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409790    人
  • 解答问题       4340    个

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

进入课程

写得不好,求推荐更快捷方便的生成随机字符串的方法

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信