📅  最后修改于: 2023-12-03 15:04:57.851000             🧑  作者: Mango
在 Rust 中,有时我们需要从字符串中的分隔数据集合创建 HashMap
。这种操作通常存在于处理文本文件、解析 CSV 文件、读取配置文件等场景中。
下面是一个示例代码,我们将演示如何读取字符串,解析其中包含的键值对数据,在创建一个 HashMap
。
use std::collections::HashMap;
fn main() {
let data = "name:John,Wilson age:63 gender:male location:Los Angeles";
// 解析数据
let mut map = HashMap::new();
for key_val in data.split(",") {
let parts: Vec<&str> = key_val.split(":").collect();
let key = parts[0];
let val = parts[1];
map.insert(key.to_string(), val.to_string());
}
// 打印 hashmap
for (key, val) in &map {
println!("{}: {}", key, val);
}
}
首先在 main 函数中定义了一组数据,以字符串的形式存储了键值对数据集合。接下来定义了一个空的 HashMap
,用于存储解析后的数据。for
循环迭代集合中所有的键值对数据,通过 split()
方法将字符串分割成一个个的键值对,并使用 collect()
方法将分割后的数据放入一个字符串数组中。代码中 parts[0]
表示分割后的第一个元素,也就是键部分,同样的方式获取分割后的第二个元素,也就是值部分,最后将解析到的数据键值对存入 map
哈希表中。
最后,使用一个 for
循环打印哈希表中所有的键值对数据。
location: Los Angeles
name: John,Wilson
age: 63
gender: male
以上就是 Rust 从字符串中的分隔数据创建 HashMap
的示例,希望对大家有所帮助!