输出以下代码:
1
一个
2
一个
我不明白这个。这一切为什么要发生?
fn main() {
let s = "a ";
let sv1:Vec<&str> = s.split_whitespace().collect();
println!("{}", sv1.len());
for x in sv1.iter() {
println!("{}", x);
}
let sv2:Vec<&str> = s.split(' ').collect();
println!("{}", sv2.len());
for x in sv2.iter() {
println!("{}", x);
}
}发布于 2021-05-16 17:40:11
根据方法文档,split_whitespace返回str::SplitWhitespace,它是字符串的非空格子串上的迭代器,由任意数量的空格分隔。这意味着它可以在多个空白空间上拆分,并且在结果中不包含空字符串。
对于方法,连续分隔符由空字符串分隔。此外,字符串的开头或结尾处的分隔符由空字符串相邻。
因此,在您的示例中,split_whitespace给出了["a"],split给了["a", ""]。
https://stackoverflow.com/questions/67559628
复制相似问题