gpt4 book ai didi

random - 生成随机字母和固定数字组合

转载 作者:行者123 更新时间:2023-11-29 07:56:44 31 4
gpt4 key购买 nike

我需要生成单个字母和 6 位数字组合的随机序列,示例:F841257

我正在调查 rand crate ,但有些东西不太管用。

extern crate rand;

fn main() {
println!("{:?}", rand::random::<char>());
}

打印类似 '\u{6ae02}' 的内容和 println!("{}", rand::random::<char>());产生一些奇怪的字形。

有人可以指出我如何实现这一目标的正确方向吗?

最佳答案

首先是一个工作程序:

extern crate rand;

use rand::Rng;

fn main() {
let mut rng = rand::thread_rng();
let letter: char = rng.gen_range(b'A', b'Z') as char;
let number: u32 = rng.gen_range(0, 999999);
let s = format!("{}{:06}", letter, number);
println!("{}", s);
}

接下来是解释。

rand::random::<char>()从整个 char 返回一个随机值范围,也就是说,它可以返回任意的 Unicode 代码点。这就是为什么您会看到奇怪的字形 - 这些可能是来自上层 Unicode 平面的值。

您需要定义需要生成的内容的边界。首先,您需要一个字母,然后您需要六位数字。字母是'A'和'Z'之间的任何字符,六位数字可以用0到999999的数字表示,打印时用零填充。

所以,首先,我们生成一个 u8它对应于 ASCII 中的一个字母并将其转换为 char (不幸的是,rand crate 不提供 char 的范围分布,因此我们必须使用这种间接方式)。

其次,我们生成一个 u32介于 0 和 999999 之间。

然后我们以所需的格式打印它们。以下是该程序生成的一些值:V285490、Y865809、A704620。

关于random - 生成随机字母和固定数字组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30487833/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com