package com.imooc.third.collection4_2; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Random; /** * 6-5章节,生成字符串随机数并排序 */ public class CollectionSortPractice6_5 { public void testSortPractice1(){ List<String>stringList = new ArrayList<String>(); //定义一个str存放大小写字母和数字字符串 String str = "zxcvbnmlkjhgfdsaqwertyuiopQWERTYUIOPASDFGHJKLZXCVBNM1234567890"; //插入10个字符串,且长度是10位的不重复字符串 Random random = new Random(); //外循环10次,每次获得一组字符串,共获得10次字符串 for (int i=0;i<10;i++){ //实例化stringBuilder类,用于存储字符串,java第三季2-6章节有讲此类的常用方法 StringBuilder stringBuilder = new StringBuilder(); //do-while循环判断获取的字符串是否重复 do{ //内循环10次,随机获取长度为10的字符串 for(int j=0;j<10;j++){ //随机生成10以内的随机整数 int k = random.nextInt(62); /** * 下面语句括号里面的参数是: * 根据随机数字所产生的char类型指定位置字符追加到当前stringBuilder对象的末尾 * append就是stringBuilder类中追加内容用的方法 * (参考java第三季2-3章节String的常用方法介绍charAt) * (参考java第三季2-6章节stringBuilder的常用方法介绍append) */ stringBuilder.append(str.charAt(k)); } //获取对象的字符串值,contains方法判断此字符串是否存在,存在将循环重新生成字符串 }while(stringList.contains(stringBuilder.toString())); //把字符串添加到stringList stringList.add(stringBuilder.toString()); System.out.println("成功添加字符串:" +stringBuilder.toString()); } System.out.println("-------------排序前----------"); //for each语句遍历排序前的元素 for(String st : stringList){ System.out.println("测试元素:"+st); } //Collections的sort方法把stringList中的元素排序 Collections.sort(stringList); System.out.println("-------------排序后----------"); //for each语句遍历排序后的元素 for(String st : stringList){ System.out.println("测试元素:" + st); } } public static void main(String[] args) { // TODO Auto-generated method stub CollectionSortPractice6_5 csp = new CollectionSortPractice6_5(); csp.testSortPractice1(); } }
哎,三季终于快结束啦!! 软件测试一枚,学java中,希望讨论学习
热门评论
程序还有点问题,运行结果中每条字符串长度固定为10个字符。
而题目要求第二条写的是:每条字符串的长度为10以内的随机整数。
for(int i = 0;i<62;i++){
System.out.print("You did a good job!");
}