我正在尝试将join
(或类似的东西)应用到 aVec<char>
以便漂亮地打印它。
到目前为止我想出的是这个(这就是我想要的):
let vec: Vec<char> = "abcdef".chars().collect();
let sep = "-";
let vec_str: String = vec
.iter().map(|c| c.to_string()).collect::<Vec<String>>().join(sep);
println!("{}", vec_str); // a-b-c-d-e-f
这似乎过于复杂(并且分配了一个Vec<String>
并不真正需要的)。
我还尝试std::slice::join
通过显式创建切片来开始工作:
let vec_str: String = (&vec[..]).join('-');
但是编译器在这里抱怨:
找不到方法
&[char]
String
有没有一种更简单的方法可以从Vec<char>
元素之间使用分隔符创建可打印的?