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

如何为String类型变量生成0-100范围内无重复的随机数字字符串?

实现0-100范围内无重复的随机数字字符串赋值给String变量

要生成0到100之间无重复的随机数字字符串,核心是记录已使用过的数字,确保每次生成的随机数未被使用过。以下是具体实现方案:

通用思路

  1. 用集合存储已生成的数字,利用集合的唯一性特性快速判断重复。
  2. 循环生成0-100的随机数,直到找到未被使用过的数字。
  3. 将该数字转换为字符串,赋值给目标变量。

Java 实现示例

import java.util.HashSet;
import java.util.Random;

// 全局集合记录已用数字,保证多次生成不重复
private static final HashSet<Integer> usedIds = new HashSet<>();
private static final Random random = new Random();

public static String getUniqueId() {
    int randomNum;
    // 循环直到生成未使用过的数字
    do {
        randomNum = random.nextInt(101); // 生成0-100(包含)的随机整数
    } while (!usedIds.add(randomNum)); // add返回false说明数字已存在,继续循环
    return String.valueOf(randomNum);
}

// 使用示例
public static void main(String[] args) {
    String id = getUniqueId();
    System.out.println(id);
}

Dart 实现示例(匹配你提供的代码风格)

import 'dart:math';

final Set<int> usedIds = {};
final Random random = Random();

String generateUniqueId() {
  int randomNum;
  do {
    randomNum = random.nextInt(101);
  } while (!usedIds.add(randomNum));
  return randomNum.toString();
}

// 使用示例
void main() {
  String id = generateUniqueId();
  print(id);
}

关键说明

  • 集合usedIds需要保持生命周期一致性(比如全局变量或类成员变量),如果每次生成都重新创建集合,会失去去重效果。
  • 如果只需要单次生成一个随机数字字符串(无需考虑重复),可以直接简化为:String id = String.valueOf(new Random().nextInt(101));,但这无法保证多次生成不重复。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 10:45:44