• 随机生成8位的数字字符串


    最近项目中涉及到随机生成8位数字字符串的功能实现:

    参考网上的代码并修改,如下是实现的代码:

    package test;
    
    import java.util.Random;
    
    public class Test {
        /**
         * 这是典型的随机洗牌算法。
         * 流程是从备选数组中选择一个放入目标数组中,将选取的数组从备选数组移除(放至最后,并缩小选择区域)
         * 算法时间复杂度O(n)
         * @return 随机8为不重复数组
         */
    
        public static String generateNumber() {
    
            //初始化备选数组
            int[] defaultNums = new int[10];
    
            for (int i = 0; i < defaultNums.length; i++) {
                defaultNums[i] = i;
            }
    
            Random random = new Random();
    
            int[] nums = new int[LENGTH];
    
            //默认数组中可以选择的部分长度
            int canBeUsed = 10;
    
            //填充目标数组
            for (int i = 0; i < nums.length; i++) {
                //将随机选取的数字存入目标数组
                int index = random.nextInt(canBeUsed);
                nums[i] = defaultNums[index];
                //将已用过的数字扔到备选数组最后,并减小可选区域
                swap(index, canBeUsed - 1, defaultNums);
                canBeUsed--;
            }
    
            StringBuffer str = new StringBuffer();
    
            for (int i = 0; i < nums.length; i++) {
                str.append(nums[i]);
            }
            return str.toString();
        }
    
        //控制字符串数据的长度
        private static final int LENGTH = 8;
    
        private static void swap(int i, int j, int[] nums) {
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
        }
    
        /** 
         * @Title: main 
         * @Description: TODO(这里用一句话描述这个方法的作用) 
         * @param @param args    设定文件 
         * @return void    返回类型 
         * @throws 
         */
        public static void main(String[] args) {
            System.out.println(generateNumber());
    
    
        }
    
    
    
    }
  • 相关阅读:
    【Java】基本类型和引用类型(值传递)
    Linux学习笔记:什么是x86
    Java volatile keyword
    C语言可变參实现參数累加返回
    [Network]Application Layer
    linux下select,poll,epoll的使用与重点分析
    卷积神经网络(CNN)基础介绍
    ScrollView嵌套ExpandableListView显示不正常的问题
    【leetcode】 Unique Binary Search Trees II (middle)☆
    【leetcode】 Unique Binary Search Trees (middle)☆
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/3472156.html
Copyright © 2020-2023  润新知