Math.random转换为int类型注意

public class RandomGenerator {
    private static char[] alphabet= {
      'a','b','c','d','e','f','g',      
      'h','i','j','k','l','m','n',
      'o','p','q','r','s','t',
      'u','v','w','x','y','z'
    };


    public static String StringGenertor(int length) {
        String temp="";

        for(int i=0;i<length;i++) {
            int random=(int) Math.floor(Math.random()*26);
            temp=temp+alphabet[random];
        }
        return temp;
    }
}

以上是一个随机的指定长度的字母生成器
用Main方法测试:


public class hello {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
          System.out.println("use floor:="+Math.floor(Math.random()*10));
          for(int i=0;i<10;i++)
            System.out.println((int)Math.random()*10);
    }

}

你会发现,随机值转换为int值一直为0

use floor:=5.0
0
0
0
0
0
0
0
0
0
0

所以此时bug就解决了。再次运行生成器,可以产生随机数字。

猜你喜欢

转载自blog.csdn.net/qq_33745102/article/details/80290563