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

Flutter中如何生成15位随机数字

Flutter 生成15位随机数字追踪号实现方案

注意事项

  • 15位追踪号需确保首位不为0,避免出现有效位数不足的问题
  • 生成逻辑需结合业务侧做去重校验,避免出现重复追踪号影响业务

基础实现方案

无需引入第三方依赖,直接使用 Dart 内置的Random类即可实现:

  1. 首先导入系统库:
    import 'dart:math';
  2. 封装生成函数:
String generate15DigitTrackingNumber() {
  final random = Random();
  // 首位生成1-9的随机数,避免开头为0
  int firstDigit = 1 + random.nextInt(9);
  // 剩余14位每位生成0-9的随机数,拼接为字符串
  String otherDigits = List.generate(14, (_) => random.nextInt(10).toString()).join();
  return '$firstDigit$otherDigits';
}

调用该函数即可直接得到符合要求的15位数字追踪号。

低重复优化方案

如果业务货件量级较大,可加入时间戳维度降低重复概率,示例代码如下:

String generateLowRepeatTrackingNumber() {
  final random = Random();
  // 取当前毫秒时间戳的后6位
  String timeSegment = DateTime.now().millisecondsSinceEpoch.toString().substring(7);
  // 生成9位随机数,首位不为0
  int firstRandom = 1 + random.nextInt(9);
  String randomSegment = firstRandom.toString() + List.generate(8, (_) => random.nextInt(10).toString()).join();
  // 拼接后总长度为6+9=15位
  return '$timeSegment$randomSegment';
}

该方案结合了时间维度,相同时间点生成重复号码的概率极低,适合大规模业务场景使用。

额外建议:不管用哪种生成方案,最终入库前都要校验追踪号是否已存在,存在则重新生成,完全避免重复问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:54:08