Java 随机数生成实战:解析范围字符串与动态区间控制
在编程里,随机数是个老生常谈的话题。无论是模拟数据、游戏逻辑还是测试用例,都离不开它。Java 虽然提供了多种方案,但如何根据业务灵活控制范围,往往藏着不少细节。今天咱们就通过两个实际场景,聊聊怎么把随机数用得更顺手。
Java 随机数基础速览
Java 生态里常用的随机数工具有几个:
Math.random():返回 [0.0, 1.0) 的 double,简单但类型受限。Random类:功能全面,适合大多数单线程场景。ThreadLocalRandom:高并发下的首选。SecureRandom:涉及安全加密时再考虑。
日常开发中,Random 类因为接口直观,往往是首选。
基本用法示例
import java.util.Random;
public class BasicRandomExample {
public static void main(String[] args) {
Random random = new Random();
// 生成 0-99 的随机数
int num1 = random.nextInt(100);
// 生成 10-30 的随机数
int num2 = random.nextInt(21) + 10;
System.out.println("0-99 随机数:" + num1);
System.out.println("10-30 随机数:" + num2);
}
}
场景一:解析范围字符串并生成随机数
有时候配置是字符串形式的,比如 "0.1-0.3",代表 0.1 元到 0.3 元。我们需要把它转换成'分'为单位的整数范围,再取随机值。
代码实现
import java.util.Random;
public class RandomCentGenerator {
public {
;
getRandomCentInRange(range);
System.out.println( + randomCent);
}
{
String[] parts = range.split();
(parts.length != ) {
();
}
{
Double.parseDouble(parts[]);
Double.parseDouble(parts[]);
() Math.round(minYuan * );
() Math.round(maxYuan * );
(minCent > maxCent) {
();
}
();
random.nextInt(maxCent - minCent + ) + minCent;
} (NumberFormatException e) {
();
}
}
}


