java Random.nextInt()方法的具体使用

lic int nextInt(int n)

该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

直接上代码:

package org.xiaowu.random.demo;

import java.util.Random;

import org.junit.Test;

public class RandomDemo {

 @Test
 public void Demo(){
  Random rnd = new Random();
  int code = rnd.nextInt(8999) + 1000;
  System.out.println("code:"+code);
 }

 @Test
 public void Demo1(){
  Random r = new Random();
  int nextInt = r.nextInt();
  Random r1 = new Random(10);
  int nextInt2 = r1.nextInt();
  System.out.println("nextInt:"+nextInt);
  System.out.println("nextInt2:"+nextInt2);
 }

 /**
  * 生成[0,1.0)区间的小数
  *
  */
 @Test
 public void Demo2(){
  Random r = new Random();
  double d1 = r.nextDouble();
  System.out.println("d1:"+d1);
 }

 /**
  * 生成[0,5.0)区间的小数
  *
  */
 @Test
 public void Demo3(){
  Random r = new Random();
  double d2 = r.nextDouble()* 5;
  System.out.println("d1:"+d2);
 }

 /**
  * 生成[1,2.5)区间的小数
  *
  */
 @Test
 public void Demo4(){
  Random r = new Random();
  double d3 = r.nextDouble() * 1.5 + 1;
  System.out.println("d1:"+d3);
 }

 /**
  * 生成任意整数
  *
  */
 @Test
 public void Demo5(){
  Random r = new Random();
  int n1 = r.nextInt();
  System.out.println("d1:"+n1);
 }

 /**
  * 生成[0,10)区间的整数
  *
  */
 @Test
 public void Demo6(){
  Random r = new Random();
  int n2 = r.nextInt(10);
  int n3 = Math.abs(r.nextInt() % 10);
  System.out.println("n2:"+n2);
  System.out.println("n3:"+n3);
 }

 /**
  * 生成[0,10]区间的整数
  *
  */
 @Test
 public void Demo7(){
  Random r = new Random();
  int n3 = r.nextInt(11);
  int n4 = Math.abs(r.nextInt() % 11);
  System.out.println("n3:"+n3);
  System.out.println("n4:"+n4);
 }

 /**
  * 生成[-3,15)区间的整数
  *
  */
 @Test
 public void Demo8(){
  Random r = new Random();
  int n4 = r.nextInt(18) - 3;
  int n5 = Math.abs(r.nextInt() % 18) - 3;
  System.out.println("n4:"+n4);
  System.out.println("n5:"+n5);
 }

}

Java中使用Random类中的nextInt()方法返回一个伪随机数

问题

今天想让程序返回一个区间内的随机数。忘记怎么写了,就去百度搜给出的结果并不对。

import java.util.Random;

/**
 * @author HP
 * @date 2019/4/16
 */
public class randomTest {
 public static void main(String[] args) {

  Random random = new Random();
  //生成64-128内的随机数
  int i = random.nextInt() * (128 - 64 + 1) + 64;
  /**
   * 生成 [m,n] 的数字
   * int i1 = random.nextInt() * (n-m+1)+m;
   * */
  //生成0-64内的数字
  int i1 = random.nextInt() * (64-0+1);
  /**
   * 生成0-n之内的数字
   * int i1 = random.nextInt() * (n-0+1);
   *
   *
   * */

 }
}

这样是不对的,我就去查看API文档,发现nextInt()可以有参数也可以无参数。

无参数的方法直接调用返回的是一个很大的正负区间上的数。

如果想返回想要的范围内的数,应该:

package chapter6;

import java.util.Random;

import org.omg.Messaging.SyncScopeHelper;

public class RandomTest {
  public static void main(String[] args) {
  Random random = new Random();
  for(int i=0;i<200;i++)
  {
//  输出为0~13之间的整数
  System.out.println(random.nextInt(14));
  }
  System.out.println("----------------------------");
  for(int j=0;j<100;j++){
//  输出为-9~0之间的整数
  System.out.println(random.nextInt(10)-9);
  }
  }
}

到此这篇关于java Random.nextInt()方法的具体使用的文章就介绍到这了,更多相关java Random.nextInt使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-07-22

实例讲解Java中random.nextInt()与Math.random()的基础用法

1.来源 random.nextInt() 为 java.util.Random类中的方法: Math.random() 为 java.lang.Math 类中的静态方法. 2.用法 产生0-n的伪随机数(伪随机数参看最后注解): // 两种生成对象方式:带种子和不带种子(两种方式的区别见注解) Random random = new Random(); Integer res = random.nextInt(n); Integer res = (int)(Math.random() * n)

实例讲解Java中动态代理和反射机制

反射机制 Java语言提供的一种基础功能,通过反射,我们可以操作这个类或对象,比如获取这个类中的方法.属性和构造方法等. 动态代理:分为JDK动态代理.cglib动态代理(spring中的动态代理). 静态代理 预先(编译期间)确定了代理者与被代理者之间的关系,也就是说,若代理类在程序运行前就已经存在了,这种情况就叫静态代理 动态代理 代理类在程序运行时创建的代理方式.也就是说,代理类并不是在Java代码中定义的,而是在运行期间根据我们在Java代码中的"指示"动态生成的. 动态代理比

java 中 String format 和Math类实例详解

java 中 String format 和Math类实例详解 java字符串格式化输出 @Test public void test() { // TODO Auto-generated method stub //可用printf(); System.out.println(String.format("I am %s", "jj")); //%s字符串 System.out.println(String.format("首字母是 %c",

实例解析Java中的构造器初始化

1.初始化顺序 当Java创建一个对象时,系统先为该对象的所有实例属性分配内存(前提是该类已经被加载过了),接着程序开始对这些实例属性执行初始化,其初始化顺序是:先执行初始化块或声明属性时制定的初始值,再执行构造器里制定的初始值. 在类的内部,变量定义的先后顺序决定了初始化的顺序,即时变量散布于方法定义之间,它们仍就会在任何方法(包括构造器)被调用之前得到初始化. class Window { Window(int maker) { System.out.println("Window(&quo

Java中Arrays类与Math类详解

Arrays(数组工具类) Java中已经封装好的类,提供大量静态方法供用户对数组的使用. 导包:import java.util.Arrays 1.Arrays.toString(数组) //返回值是一个[]括起来的字符串,将数组中的元素放入[]中 int[] arr=new int[]{1,2,3,4}; String str=Arrays.toString(arr); System.out.println(str); -------------------------------- [1,

Java中的拦截器、过滤器、监听器用法详解

本文实例讲述了Java中的拦截器.过滤器.监听器用法.分享给大家供大家参考,具体如下: 一.拦截器 :是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方 法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作. 1.Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截器是可插拔的,

实例讲解Java编程中数组反射的使用方法

什么是反射 "反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为."这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释: 内省用于在运行时检测某个对象的类型和其包含的属性: 反射用于在运行时检测和修改某个对象的结构及其行为. 从它们的定义可以看出,内省是反射的一个子集.有些语言支持内省,但并不支持反射,如C++. 内省示例:instanceof 运算符用于检测某个对象是否属于特定的类. if (obj inst

讲解Java中的基础类库和语言包的使用

Java基础类库 Java 的类库是 Java 语言提供的已经实现的标准类的集合,是 Java 编程的 API(Application Program Interface),它可以帮助开发者方便.快捷地开发 Java 程序.这些类根据实现的功能不同,可以划分为不同的集合,每个集合组成一个包,称为类库.Java 类库中大部分都是由Sun 公司提供的,这些类库称为基础类库. Java 语言中提供了大量的类库共程序开发者来使用,了解类库的结构可以帮助开发者节省大量的编程时间,而且能够使编写的程序更简单

实例讲解Java并发编程之闭锁

闭锁相当于一扇门,在闭锁到达结束状态之前,这扇门一直是关闭着的,没有任何线程可以通过,当到达结束状态时,这扇门才会打开并容许所有线程通过.它可以使一个或多个线程等待一组事件发生.闭锁状态包括一个计数器,初始化为一个正式,正数表示需要等待的事件数量.countDown方法递减计数器,表示一个事件已经发生,而await方法等待计数器到达0,表示等待的事件已经发生.CountDownLatch强调的是一个线程(或多个)需要等待另外的n个线程干完某件事情之后才能继续执行. 场景应用: 10个运动员准备赛

实例讲解Android中的AIDL内部进程通信接口使用

首先描述下我们想要实现的内容,我们希望在一个应用中通过点击按钮,去操作另一个进程中应用的音乐播放功能. 如图,我们点击"播放"时,系统就会去远程调用我们提供的一个service(与当前service不是同一个应用哦),然后操作service中的音乐播放,点击"停止"则会终止播放.想要重新播放的话,必须先点"销毁service",再点播放按钮哦.(至于这里为什么要先点销毁按钮才能播放,完全是为了给大家展示下,远程调用service时,怎么去解绑se