Dart(以及 Flutter)中生成随机字符串的 3 种不同方法
【摘要】 作者:坚果华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。本文向您展示了在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法。事不宜迟,让我们深入研究代码。加入随机字母和数字下面的示例演示了如何生成具有给定长度的随机字符串。结果将仅包含...
华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。
本文向您展示了在 Dart(以及 Flutter)中生成随机字符串的 3 种不同方法。事不宜迟,让我们深入研究代码。
加入随机字母和数字
下面的示例演示了如何生成具有给定长度的随机字符串。结果将仅包含字母和数字(az、AZ、0-9)。
import 'dart:math'; import 'package:flutter/foundation.dart'; // Define a reusable function String 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)); }
每次运行上述代码时,输出都会不同:
tFKOzF6eOs WsJ1tF6IyIBfMMXCQS1t
使用加密库
这种方法利用了 Dart 团队发布的包。下面的示例将使用md5散列和sha1散列来生成随机字符串。
例子:
import 'package:flutter/foundation.dart'; import 'dart:math'; import 'dart:convert'; import 'package:crypto/crypto.dart'; // md5 hashing a random number String md5RandomString() { final randomNumber = Random().nextDouble(); final randomBytes = utf8.encode(randomNumber.toString()); final randomString = md5.convert(randomBytes).toString(); return randomString; } // sha1 hashing a random number String 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()); }
输出:
eb858fc63586fb81123d750fe82e39e0 35911da7d122bffeb75714cdde4c96b55c7fa8ef
使用字符代码
此示例将生成具有给定长度的随机字符串。结果将包含特殊字符。
import 'dart:math'; import 'package:flutter/foundation.dart'; // Declare a fucntion for reusable purpose String 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_lougc d__xvvvpclgfjqwqZZs\
总结
我们已经了解了在 Dart 和 Flutter 程序中创建随机字符串的几种不同方法。如果您想探索有关 Dart 和 Flutter 的更多新鲜有趣的东西,可以关注公众号“大前端之旅”,查看往期精彩。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)