📜  在多个分隔符上拆分文本并放入列表 - Rust (1)

📅  最后修改于: 2023-12-03 15:37:41.625000             🧑  作者: Mango

在多个分隔符上拆分文本并放入列表 - Rust

在编程中,我们经常需要使用字符串并对其进行操作。有时我们需要将一个字符串拆分成多个片段,并将这些片段放入一个列表中。在 Rust 中,您可以使用 split() 函数将字符串分割为多个部分,但是如果您想使用多个分隔符分割字符串,该怎么办? 在这篇文章中,我们将学习如何在 Rust 中使用多个分隔符将一个字符串分割成多个部分,并将这些部分放入一个列表中。

首先,我们需要先定义多个分隔符。我们来看一个示例:

let separators = [' ', ':', '-'];

如上述代码所示,我们使用一个字符数组来定义多个分隔符,即空格、冒号和破折号。

接下来,我们需要定义要分割的字符串:

let input_string = "Hello World:My-Name-is-John";

有了这两个变量,我们现在可以使用 Rust 语言中的 split() 函数对字符串进行分割。但是,由于我们要使用多个分隔符,因此我们需要自己编写一个函数。这个函数将在多个分隔符处进行分割,然后将它们添加到一个列表中。让我们来看看如何实现这个函数:

fn split_string_by_separators(input_string: &str, separators: &[char]) -> Vec<String> {
    let mut parts: Vec<String> = Vec::new();
    let mut start_index = 0;

    for (index, character) in input_string.chars().enumerate() {
        if separators.contains(&character) {
            let part = &input_string[start_index..index];
            if !part.is_empty() {
                parts.push(part.to_string());
            }
            start_index = index + 1;
        }
    }

    let part = &input_string[start_index..input_string.len()];
    if !part.is_empty() {
        parts.push(part.to_string());
    }

    parts
}

以上函数是一个接受两个参数的函数,第一个参数是要分割的字符串,第二个参数是要使用的分隔符。函数创建一个名为 parts 的空列表,并且使用循环遍历输入字符串的每个字符。如果当前字符是分隔符之一,则函数会将字符串分割到 parts 列表中。当循环结束时,函数还将最后一个字符串片段添加到列表中。

有了这个函数,我们现在可以使用我们的例子及定义的函数进行测试:

fn main() {
    let separators = [' ', ':', '-'];
    let input_string = "Hello World:My-Name-is-John";
    let parts = split_string_by_separators(input_string, &separators);

    for part in parts {
        println!("{}", part);
    }
}

输出将如下所示:

Hello
World
My
Name
is
John

这就是多个分隔符上如何分割字符串并将分割后的结果放入一个列表中的完整解决方案。

结论

在编程中,我们经常需要对字符串进行操作。 Rust 提供的 split() 函数使我们能够将字符串分割为多个部分,但是如果我们需要使用多个分隔符,该怎么办?在本文中,我们学习了如何使用 Rust 的 split() 函数以及自定义的函数将字符串分割为多个部分,并将这些部分存储在一个列表中。我们希望这篇文章能够帮助您了解如何在 Rust 中使用多个分隔符分割字符串。