0
点赞
收藏
分享

微信扫一扫

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 团队发布的​​crypto​​包。下面的示例将使用​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 的更多新鲜有趣的东西,可以关注公众号“大前端之旅”,查看往期精彩。​ ​​关于常见状态码,你了解多少?​​你的转发,收藏与点赞就说对坚果的最大支持。

举报

相关推荐

0 条评论