首页 > 编程语言 >Java生成10位随机数的方法

Java生成10位随机数的方法

时间:2025-01-17 09:29:22浏览次数:3  
标签:10 Java random long 随机数 public randomNumber

在Java中生成10位随机数有多种方法,以下是一些常见的实现方式:

方法一:使用Random

java复制

import java.util.Random;

public class RandomNumberGenerator {
    public static void main(String[] args) {
        Random random = new Random();
        long randomNumber = 1000000000L + (long)(random.nextDouble() * 9000000000L);
        System.out.println(randomNumber);
    }
}
  • Random类的nextDouble()方法生成一个[0,1)范围内的随机浮点数,乘以9000000000L后,得到一个[0,9000000000)范围内的随机浮点数,再加上1000000000L,即可得到一个[1000000000,10000000000)范围内的随机数,即10位随机数。

方法二:使用Math.random()方法

java复制

public class RandomNumberGenerator {
    public static void main(String[] args) {
        long randomNumber = 1000000000L + (long)(Math.random() * 9000000000L);
        System.out.println(randomNumber);
    }
}
  • Math.random()方法同样生成一个[0,1)范围内的随机浮点数,后续处理方式与方法一相同。

方法三:使用ThreadLocalRandom类(Java 7及以上版本)

java复制

import java.util.concurrent.ThreadLocalRandom;

public class RandomNumberGenerator {
    public static void main(String[] args) {
        long randomNumber = ThreadLocalRandom.current().nextLong(1000000000L, 10000000000L);
        System.out.println(randomNumber);
    }
}
  • ThreadLocalRandom类是专门为多线程环境设计的随机数生成器,其nextLong(origin, bound)方法可以生成一个指定范围内的随机数,其中origin为下界(包含),bound为上界(不包含)。

方法四:使用SecureRandom类(生成更安全的随机数)

java复制

import java.security.SecureRandom;

public class RandomNumberGenerator {
    public static void main(String[] args) {
        SecureRandom random = new SecureRandom();
        long randomNumber = 1000000000L + (long)(random.nextDouble() * 9000000000L);
        System.out.println(randomNumber);
    }
}
  • SecureRandom类提供了一种更安全的随机数生成方式,适用于对随机性要求较高的场景,如加密等。其使用方式与Random类类似。

方法五:使用字符串拼接(生成包含0-9的10位随机数)

java复制

import java.util.Random;

public class RandomNumberGenerator {
    public static void main(String[] args) {
        Random random = new Random();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 10; i++) {
            sb.append(random.nextInt(10));
        }
        String randomNumber = sb.toString();
        System.out.println(randomNumber);
    }
}
  • 通过循环10次,每次生成一个0-9之间的随机整数,并将其转换为字符串拼接到StringBuilder中,最终得到一个包含0-9的10位随机数。

方法六:通过UUID方式

public static void main(String[] args) {
        UUID uuid = UUID.randomUUID();
        long mostSigBits = uuid.getMostSignificantBits();
        long leastSigBits = uuid.getLeastSignificantBits();
        long numericUUID = mostSigBits ^ leastSigBits;
        long tenDigitUUID = Math.abs(numericUUID % 10000000000L); // 10位数字UUID
}

以上方法都可以生成10位随机数,具体选择哪种方法可以根据实际需求和场景来决定。

标签:10,Java,random,long,随机数,public,randomNumber
From: https://blog.csdn.net/mopmgerg54mo/article/details/145196825

相关文章

  • 基于Java+SpringBoot+Vue的课程作业管理系统
    作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,有较为丰富的相关经验。期待与各位高校教师、企......
  • JavaScript有几种类型值?能否画出它们的内存图?
    JavaScript中主要有八种类型的值,包括七种原始类型(PrimitiveTypes)和一种对象类型(ObjectTypes)。这八种类型分别是:Number:表示数字,包括整数和浮点数。如:42,3.14159。BigInt:表示任意大的整数。这是一种在ES2020中引入的新类型,用于表示比Number.MAX_SAFE_INTEGER更大的整数。如......
  • Java 中的 ZoneOffset
    介绍在我们的这个世界上因为地球是圆的,所以每个国家都会有自己特定的时区。时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在,又给我们带来了很多的麻烦,比如北美地区使用的夏令时和中国统一使用东8区的时间等。  当这些时间在我们计算机中进行体现的时......
  • 【AIcoding技术必知必会】10问--命令行是什么?
    基础介绍命令行(CommandLine)是一种通过输入文本命令来与计算机交互的界面,也称为命令行界面(CLI-CommandLineInterface)。它是一种交互方法,而不是具体的程序。相比图形用户界面(GUI),命令行提供了更直接和强大的方式来控制计算机。熟练掌握后会大大提高工作效率,特别是在服务器管......
  • 学习疯狂JAVA讲义1.16
    练习结果:(如有更好方法,敬请指点)这两天沉迷刘晓庆自传—《人生不怕从头再来》,光看前言就入坑了,这女人身上的魅力是无与伦比的,她的经历是文坛作家们绞尽脑汁,想到死,想到吐血都编撰不出来的,既刺激又真实,让人不舍得睡醒再读,吸引着我必须当天读完!        金句摘抄如......
  • [2025.1.16 JavaSE学习]线程常用方法
    线程常用方法setName:设置线程名称getName:返回线程名称start:使线程开始执行,JVM底层调用该线程的start0()方法run:调用线程对象run方法setPriority:更改线程优先级,三个级别:getPriority:获取线程优先级sleep:线程休眠interrupt:中断线程,但并没有真正地结束线程(不是终止,是中断),......
  • P1042 [NOIP2003 普及组] 乒乓球
    [NOIP2003普及组]乒乓球题目背景国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中111111分制改革引起了很大的争议,有......
  • Java中的依赖注入是什么?它如何工作?
    目录什么是依赖注入依赖注入的工作原理使用场景总结在Java开发中,依赖注入(DependencyInjection,DI)是一种重要的设计模式,它能够有效地减少代码之间的耦合度,提高代码的可测试性、可维护性和扩展性。以下是对Java中的依赖注入及其工作原理和使用场景的详细解释,并结合具......
  • Java集合常见面试题大全
    目录一、集合概述1.1 Java集合概览1.2 说说List,Set,Queue,Map四者的区别?1.3  集合框架底层数据结构总结1.4 如何选用集合?1.5 为什么要使用集合?二、Collection子接口之List2.1 Arraylist和Vector的区别?2.2 Arraylist与LinkedList区别?......
  • 分享10个好用的AI工具网站
    一、DeepSeek地址:DeepSeek简介:DeepSeek-V3在推理速度上相较历史模型有了大幅提升。在目前大模型主流榜单中,DeepSeek-V3在开源模型中位列榜首,与世界上最先进的闭源模型不分伯仲。二、网易见外地址:网易见外-AI智能语音转写听翻平台简介:网易见外是一个由网易人工智能......