如何在Rust中分割字符串作为输入?

问题描述 投票:0回答:1

我想根据其中的空白拆分作为输入提供的String。我已经使用了split_whitespaces()函数,但是当我在自定义输入中使用此函数时,它只是给了我第一个String切片。

let s:String = read!();
let mut i:usize = 0;
for token in s.split_whitespace() {
    println!("token {} {}", i, token);
    i+=1;
}

我想念什么?

rust
1个回答
0
投票

据我所知,read!不是标准宏。快速搜索显示可能是来自text_io条板箱(如果您使用外部条板箱,则应在问题中说明)。

来自该板条箱中的文档:

text_io宏将始终读取,直到下一个ascii空格字符(read!()\n\r或空格)。

所以您所看到的是设计使然。

如果要从\t中读取整行,可以尝试使用标准功能stdin


0
投票

您缺少测试用例。拆分为一个函数,并用一个测试用例替换read!()宏(我不知道),在该用例中,您向该函数提供了不同的字符串]

std::Stdin::read_line

然后您将看到您的代码正在正常工作

© www.soinside.com 2019 - 2024. All rights reserved.