Java随机数怎么应用

这篇文章主要介绍“Java随机数怎么应用”,在日常操作中,相信很多人在Java随机数怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java随机数怎么应用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

专注于为中小企业提供成都做网站、成都网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业钟山免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了成百上千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

Java随机数的测试

通过一个例子说明上面的用法

import java.util.Random;   /**   * Java随机数测试   * User: leizhimin   * Date: 2008-11-19 17:52:50   */  public class TestRandomNum {   public static void main(String[] args) {   randomTest();   testNoSeed();   testSeed1();   testSeed2();   }   public static void randomTest() {   System.out.println("--------------test()--------------");   //返回以毫秒为单位的当前时间。   long r1 = System.currentTimeMillis();   //返回带正号的 double 值,大于或等于 0.0,小于 1.0。   double r2 = Math.random();   //通过Random类来获取下一个随机的整数   int r3 = new Random().nextInt();   System.out.println("r1 = " + r1);   System.out.println("r3 = " + r2);   System.out.println("r2 = " + r3);   }   public static void testNoSeed() {   System.out.println("--------------testNoSeed()--------------");   //创建不带种子的测试Random对象   Random random = new Random();   for (int i = 0; i < 3; i++) {   System.out.println(random.nextInt());   }   }   public static void testSeed1() {   System.out.println("--------------testSeed1()--------------");   //创建带种子的测试Random对象   Random random = new Random(555L);   for (int i = 0; i < 3; i++) {   System.out.println(random.nextInt());   }   }   public static void testSeed2() {   System.out.println("--------------testSeed2()--------------");   //创建带种子的测试Random对象   Random random = new Random();   random.setSeed(555L);   for (int i = 0; i < 3; i++) {   System.out.println(random.nextInt());   }   }   }

运行结果:

--------------test()--------------   r1 = 1227108626582  r3 = 0.5324887850155043  r2 = -368083737  --------------testNoSeed()--------------   809503475  1585541532  -645134204  --------------testSeed1()--------------   -1367481220  292886146  -1462441651  --------------testSeed2()--------------   -1367481220  292886146  -1462441651  Process finished with exit code 0

通过testSeed1()与testSeed2()方法的结果可以看到,两个打印结果相同,因为他们种子相同,再运行一次,结果还是一样的,这就是带种子随机数的特性。而不带种子的,每次运行结果都是随机的。

Java随机数的综合应用

下面通过最近写的一个随机数工具类来展示用法:

import java.util.Random;   /**   * 随机数、随即字符串工具   * User: leizhimin   * Date: 2008-11-19 9:43:09   */  public class RandomUtils {   public static final String allChar =            "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";   public static final String letterChar =         "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";   public static final String numberChar = "0123456789";   /**   * 返回一个定长的随机字符串(只包含大小写字母、数字)   *   * @param length 随机字符串长度   * @return 随机字符串   */  public static String generateString(int length) {   StringBuffer sb = new StringBuffer();   Random random = new Random();   for (int i = 0; i < length; i++) {   sb.append(allChar.charAt(random.nextInt(allChar.length())));   }   return sb.toString();   }   /**   * 返回一个定长的随机纯字母字符串(只包含大小写字母)   *   * @param length 随机字符串长度   * @return 随机字符串   */  public static String generateMixString(int length) {   StringBuffer sb = new StringBuffer();   Random random = new Random();   for (int i = 0; i < length; i++) {   sb.append(allChar.charAt(random.nextInt(letterChar.length())));   }   return sb.toString();   }   /**   * 返回一个定长的随机纯大写字母字符串(只包含大小写字母)   *   * @param length 随机字符串长度   * @return 随机字符串   */  public static String generateLowerString(int length) {   return generateMixString(length).toLowerCase();   }   /**   * 返回一个定长的随机纯小写字母字符串(只包含大小写字母)   *   * @param length 随机字符串长度   * @return 随机字符串   */  public static String generateUpperString(int length) {   return generateMixString(length).toUpperCase();   }   /**   * 生成一个定长的纯0字符串   *   * @param length 字符串长度   * @return 纯0字符串   */  public static String generateZeroString(int length) {   StringBuffer sb = new StringBuffer();   for (int i = 0; i < length; i++) {   sb.append('0');   }   return sb.toString();   }   /**   * 根据数字生成一个定长的字符串,长度不够前面补0   *   * @param num 数字   * @param fixdlenth 字符串长度   * @return 定长的字符串   */  public static String toFixdLengthString(long num, int fixdlenth) {   StringBuffer sb = new StringBuffer();   String strNum = String.valueOf(num);   if (fixdlenth - strNum.length() >= 0) {   sb.append(generateZeroString(fixdlenth - strNum.length()));   } else {   throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth + "的字符串发生异    常!");   }   sb.append(strNum);   return sb.toString();   }   /**   * 根据数字生成一个定长的字符串,长度不够前面补0   *   * @param num 数字   * @param fixdlenth 字符串长度   * @return 定长的字符串   */  public static String toFixdLengthString(int num, int fixdlenth) {   StringBuffer sb = new StringBuffer();   String strNum = String.valueOf(num);   if (fixdlenth - strNum.length() >= 0) {   sb.append(generateZeroString(fixdlenth - strNum.length()));   } else {   throw new RuntimeException("将数字" + num + "转化为长度为" + fixdlenth + "的字符串发生异    常!");   }   sb.append(strNum);   return sb.toString();   }   public static void main(String[] args) {   System.out.println(generateString(15));   System.out.println(generateMixString(15));   System.out.println(generateLowerString(15));   System.out.println(generateUpperString(15));   System.out.println(generateZeroString(15));   System.out.println(toFixdLengthString(123, 15));   System.out.println(toFixdLengthString(123L, 15));   }   }

运行结果:

vWMBPiNbzfGCpHG   23hyraHdJkKPwMv   tigowetbwkm1nde   BPZ1KNEJPHB115N   000000000000000  000000000000123  000000000000123  Process finished with exit code 0

到此,关于“Java随机数怎么应用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


网页标题:Java随机数怎么应用
分享网址:http://cdiso.cn/article/iedhoo.html

其他资讯