写点什么

在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法【Flutter 专题 21】

作者:坚果前端
  • 2021 年 12 月 11 日
  • 本文字数:1181 字

    阅读完需:约 4 分钟

在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法【Flutter专题21】

本文向您展示了在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法。事不宜迟,让我们深入研究代码。

加入随机字母和数字

下面的示例演示了如何生成具有给定长度的随机字符串。结果将仅包含字母和数字(az、AZ、0-9)。


import 'dart:math';import 'package:flutter/foundation.dart';
// Define a reusable functionString generateRandomString(int length) { final _random = Random(); const _availableChars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz1234567890'; final randomString = List.generate(length, (index) => _availableChars[_random.nextInt(_availableChars.length)]) .join();
return randomString;}
void main() { debugPrint(generateRandomString(10)); debugPrint(generateRandomString(20));}
复制代码


每次运行上述代码时,输出都会不同:


tFKOzF6eOsWsJ1tF6IyIBfMMXCQS1t
复制代码

使用加密库

这种方法利用了 Dart 团队发布的crypto包。下面的示例将使用 md5 散列和 sha1 散列来生成随机字符串。


例子:


import 'package:flutter/foundation.dart';import 'dart:math';import 'dart:convert';
import 'package:crypto/crypto.dart';
// md5 hashing a random numberString md5RandomString() { final randomNumber = Random().nextDouble(); final randomBytes = utf8.encode(randomNumber.toString()); final randomString = md5.convert(randomBytes).toString(); return randomString;}
// sha1 hashing a random numberString sha1RandomString() { final randomNumber = Random().nextDouble(); final randomBytes = utf8.encode(randomNumber.toString()); final randomString = sha1.convert(randomBytes).toString(); return randomString;}
void main() { debugPrint(md5RandomString()); debugPrint(sha1RandomString());}
复制代码


输出:


eb858fc63586fb81123d750fe82e39e035911da7d122bffeb75714cdde4c96b55c7fa8ef
复制代码

使用字符代码

此示例将生成具有给定长度的随机字符串。结果将包含特殊字符。


import 'dart:math';import 'package:flutter/foundation.dart';
// Declare a fucntion for reusable purposeString generateRandomString(int len) { final _random = Random(); final result = String.fromCharCodes( List.generate(len, (index) => _random.nextInt(33) + 89)); return result;}
void main() { debugPrint(generateRandomString(50)); debugPrint(generateRandomString(20));}
复制代码


输出:


`[uvj][d\oZvymn]tYes]l]_gydf_uYmacjvgtanlinr_lougcd__xvvvpclgfjqwqZZs\
复制代码

总结

我们已经了解了在 Dart 和 Flutter 程序中创建随机字符串的几种不同方法。如果您想探索有关 Dart 和 Flutter 的更多新鲜有趣的东西,

发布于: 2 小时前阅读数: 7
用户头像

坚果前端

关注

此间若无火炬,我便是唯一的光 2020.10.25 加入

公众号:“坚果前端”,华为云享专家,51CTO博客首席体验官,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

评论

发布
暂无评论
在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法【Flutter专题21】