• Day_12【集合】扩展案例3_产生10个长度为10,不能重复,由数字0-9,小写字母和大写字母组成的字符串


    分析以下需求,并用代码实现

    •   1.产生10个1-20之间的随机数要求随机数不能重复
        2.产生10个长度为10的不能重复的字符串(里面只能出现大写字母、小写字母、0-9的数字),并遍历打印输出
      

    代码

    package com.itheima;
    
    import java.util.ArrayList;
    import java.util.Random;
    
    public class Test3 {
    	public static void main(String[] args) {
    		// 定义一个空字符串
    		String str = "";
    		// 创建字符串对象
    		StringBuilder sb = new StringBuilder();
    		// 将数字0-9存储到字符串sb中
    		for (int i = 0; i <= 9; i++) {
    			sb.append(i);
    		}
    		// 将小写字母存储到字符串sb中
    		for (int i = 97;i <= 122;i++) {
    			//对字符串的类型进行强转
    			sb.append((char) i );
    		}
    		// 将大写字母存储到字符串sb中
    		for (int i = 65;i <= 90;i++) {
    			sb.append((char) i );
    		}
    		//将sb的内容存储到字符串str中
    		str = sb.toString();
    		
    		//创建随机数对象
    		Random rand = new Random();
    		//创建集合对象存储不重复的字符串
    		ArrayList<String> list = new ArrayList<String>();
    		//创建缓冲区对象                 ---------        何为缓冲区对象
    		StringBuilder sb2 = new StringBuilder();
    		//使集合长度始终为10
    		while(list.size() < 10){
    			// 循环产生长度为10的字符串
    			for (int i = 0;i < 10;i++){
    				// 数字0-9,小写字母,大写字母加起来一共62位
    				int random = rand.nextInt(62);
    				sb2.append(str.charAt(random));
    			}
    			// 去重
    				if (!list.contains(sb2.toString())){
    					list.add(sb2.toString());
    				}
    				//清除缓冲区,为了下次继续产生新的字符串
    				sb2.delete(0, sb2.length());
    		}
    		System.out.println(list);
    		
    		
    	}
    
    }
    
    
  • 相关阅读:
    eclipse写javaee的时候js文件新增函数找不到
    baidu春招题:熊回家
    java自定义容器排序实现接口
    Thread主体和执行主体
    jqurey定位 id
    c中二维数组与指针访问
    ubuntu上浏览器上不了网
    前端经典面试题
    HTML,CSS,JS试题
    CSS3实现文字浮雕效果,镂刻效果,火焰文字
  • 原文地址:https://www.cnblogs.com/zzzsw0412/p/12772524.html
Copyright © 2020-2023  润新知