JSP生成的随机码长度不标准

时间:2015-05-18 11:48:26

标签: java

我可以知道为什么生成的代码长度有时是9,有时是10?我怎样才能让它成为所有人的标准?

public String testing() throws Exception
{ 
     String total = "";
     for(int k =0 ; k < 10 ;k++)
     {
       String chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
       String ret = "";
        int length = chars.length();
        for (int i = 0; i < 10; i ++){
            ret += chars.split("")[ (int) (Math.random() * (length - 1)) ];
        }
        total = ret;
}
 return total;
}

结果

('0QU7F73D5T')
('XQ7YZK2QV') //different length 9
('XP0KBN4IEX')
('ZIM74X1J7Q')
('570QR4A4L2')
('YTAL1IOQ37')
('TIF1UOJVT') //different length 9
('7T2PXELI2A')
('T3N0PDDHSB')

1 个答案:

答案 0 :(得分:3)

问题是因为在{/ p>处使用chars拆分""字符串

chars.split("")[ (int) (Math.random() * (length - 1)) ] 

所以不要拆分,而是使用

chars.charAt((int) (Math.random() * (length - 1))) 

因为使用""进行拆分时,empty string索引中的数组已填充0th