You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin如何简便生成指定区间随机数 解决random()导入失败问题

Kotlin指定区间随机数实现方案

(100..200).random() 是Kotlin 1.3+标准库内置的区间扩展函数,无法识别、导入失败基本是项目Kotlin版本低于1.3,或者Gradle同步异常导致标准库未正确加载,可根据自己项目情况选以下方案:

方案1:修复环境直接用官方简便写法(推荐)

这是Kotlin官方提供的最简洁实现,不需要额外写工具类,修复环境后直接可用:

  • 打开项目根目录build.gradle文件,将Kotlin版本升级到1.3及以上稳定版(当前主流稳定版为1.8、1.9系列)
  • 确认app模块的依赖中引入了Kotlin标准库,一般新建Kotlin项目会自动添加,缺失的话补全对应依赖即可:
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    
  • 点击Sync Now同步Gradle,同步完成后不需要额外导包,直接写val randomNumber = (100..200).random()即可生成100~200(包含两端边界)的随机整数。

方案2:低版本Kotlin兼容写法

如果暂时无法升级项目Kotlin版本,可以直接用Kotlin Random类的nextInt方法实现,逻辑和上述官方扩展函数完全一致:

import kotlin.random.Random

// 注意nextInt第二个参数是**开区间**,要包含200的话结束值传201
val randomNumber = Random.nextInt(from = 100, until = 201)

如果需要生成不包含右边界的区间随机数,直接把右边界值传入until参数即可,比如生成100~199的随机数就写Random.nextInt(100, 200)。

方案3:极老版本兜底写法

如果项目Kotlin版本过低,连kotlin.random包都无法识别,可以直接用JDK原生的Random类实现,全版本兼容:

import java.util.Random

val randomInstance = Random()
// 计算规则:nextInt(区间总长度) + 区间起始值
// 100到200总长度为200-100+1=101,因此nextInt传101
val randomNumber = randomInstance.nextInt(101) + 100

注意:不推荐用Android专属的随机数API,上述两种Random类是JDK/Kotlin内置实现,全Android版本兼容,不需要做系统版本判断。

内容的提问来源于stack exchange,提问作者Bo Z

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 22:39:15