由于字符串支持迭代但不支持索引,我想将字符串转换为字符列表.我有"abc"
,我想要['a', 'b', 'c']
.
它可以是任何类型,只要我可以索引它.A Vec<char>
或者[char; 3]
没关系,其他想法也很有意思!
因为我处理很长的字符串,所以会更快.假设字符串是ASCII时效率更高的版本也很酷.
Net*_*ave 16
使用chars
方法String
或str
:
fn main() {
let s = "Hello world!";
let char_vec: Vec<char> = s.chars().collect();
for c in char_vec {
println!("{}", c);
}
}
Run Code Online (Sandbox Code Playgroud)
这里有一个实例
Sar*_*ien 12
我已经找到了这个解决方案:
let chars: Vec<char> = input.chars().collect();
Run Code Online (Sandbox Code Playgroud)
在评论中,有人建议使用.split("")
但它似乎以一种令人讨厌的方式实现:
println!("{:?}", "abc".split("").collect::<Vec<&str>>());
Run Code Online (Sandbox Code Playgroud)
给 ["", "a", "b", "c", ""]