温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java随机数怎么应用

发布时间:2022-01-06 17:31:41 来源:亿速云 阅读:318 作者:iii 栏目:编程语言

这篇文章主要介绍“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随机数怎么应用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI