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

自己参考着写的《随机生成不重复字符串》代码

public static void  testSort3(){
   List<String> list3 = new ArrayList<String>();//储存所有字符串
   Set<String>  setString = new HashSet<String>();//用于选择不同的字符串
   String newst = new String();                   //储存当前得到的字符串
   
   Random  rand = new Random();       //产生10以内随机数。用于字符串控制长度
   StringBuffer sb= new StringBuffer();   // 可以变动的字符型
   StringBuffer  buf = new StringBuffer("abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ");           // 字符组合的基
   
     int m = 0;              //m控制字符串的数量
     while (m<10){
    do{
	 //字符串长度在10以内。达到该长度前进行for循环
    for(int i = 0; i < rand.nextInt(10); i ++){
        //定义一个变量,取得buf字符组合基的长度
	 int num = buf.length();
//往空的字符串 sb 的末端加入单个元素。该元素从buf组合基中随机取得		
       sb.append(buf.charAt(rand.nextInt(num)));
		                       }//do结束
	//将sb可变动类型转换成字符串型	                       		
           newst= sb.toString();
           //若setString中已包含该对象,重新进行do操作
	 }while (setString.contains(newst));
	 //往Set接口下的setString中添加该对象
	    setString.add(newst);
	   //往List接口下的list3中添加该字符串 
	  list3.add(newst);	  
	 System.out.println("成功添加:"+newst);	
	 
	 //可变更类型的  sb 字符串 清空,用于下一次操作
	 sb= new StringBuffer();
		 m++;
		 }
		 System.out.println("============排序前==========");
			for (String in : list3){
				
				System.out.println("元素:"+ in);
			}
		System.out.println("----------------------排序后---------------------");
			Collections.sort(list3);
	                       for (String in : list3){
				
				System.out.println("元素:"+ in);
			}
		 
	}

自己写的代码。如有不足请指教一二。十分感谢!

正在回答

1 回答

//生成字符表
public void generatorAlphabeta(List<Character> list,char st,char ed){
		for(char c= st;c<=ed;c++){
			list.add(c);
		}
	}
	
public void testSort2(){
		List<String> stringList = new ArrayList<String>();
		List<Character> subList = new ArrayList<Character>();
		
		generatorAlphabeta(subList, 'a', 'z');//将a-z加入字符表
		generatorAlphabeta(subList, 'A', 'Z');//将A-Z加入字符表
		generatorAlphabeta(subList, '0', '9');//将0-9加入字符表
		
		//随机生成字符串
		String str = "";
		Random random = new Random();
		for (int j = 0; j < 10; j++) {
			str = "";
			while(true){
			for (int i = 0; i < random.nextInt(10); i++) {
				double randomNum = 0.0;
				int index = 0;
					index = random.nextInt(62);
					str = str + subList.get(index);
				}//生成小于10长度的字符串
			if(!str.equals("") && !stringList.contains(str)) break;//不为空且不重复就跳出字符串生成
			}
			stringList.add(str);//10条字符串
		}
				
		System.out.println("-----------排序前-----------");
		for (String string : stringList) {
			System.out.println("字符串:"+string);
		}
		Collections.sort(stringList);
		System.out.println("-----------排序后-----------");
		for (String string : stringList) {
			System.out.println("字符串:"+string);
		}
	}


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

举报

0/150
提交
取消

自己参考着写的《随机生成不重复字符串》代码

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号