生成不重复的数字的判断

来源:互联网 发布:java需求文档怎么写 编辑:程序博客网 时间:2024/04/29 21:10

方法1:通过死循环

调用:            main(){//main方法                for (;;){//创建一个死循环                        sequenceNumber = getCard();//生成12位序列号                        sequenceNumber = checkSequenceNumber(sequenceNumber);//验证序列号                        if (StringUtils.isNotBlank(sequenceNumber)) {                            break;//如果不重复,那么跳出循环,否则继续循环生成序列号,然后验证,周而复始                        }                    }            }     //生成12位序列号        public static String getCard(){            Random rand = new Random();//生成随机数            String cardNnumer1 = "";            Integer card = rand.nextInt(9)+1;//第一个数字不可为0            for(int a=0;a<11;a++){                cardNnumer1+=rand.nextInt(10);//生成11位数字            }            return card+cardNnumer1;        }        /**         * 验证是否有相同的序列号         * @param sequenceNumber         * @return         */        public String checkSequenceNumber(String sequenceNumber){            SuRedNewPacket packet=redNewPacketService.checkSequenceNumber(sequenceNumber);            if(packet!=null){                return null;            }else {                return sequenceNumber;            }               }

方法2:面向对象,多次调用

          //main方法            main(){                dhm = returnBarCode();            }           /**            * 验证vip红包兑换码            * @return            */           public String returnBarCode(){               String dhm = getCard1();//调用生成验证码               SuRedNewPacket redNewPacket = redNewPacketService.selectDhm(dhm);//兑换码去重               if(redNewPacket != null){//如果有相同的,就继续生成,周而复始                  return returnBarCode();               }else{                   return dhm;               }           }           //生成vip兑换码           public static String getCard1(){               String dhm = "";                Random rand = new Random();//生成随机数                for(int a = 0; a < 8; a++){                    dhm += rand.nextInt(10);                }               return dhm;           }
原创粉丝点击