5 проверенных способов отрезать последний символ строки!

Привет, друзья-русаки! Сегодня мы погружаемся в увлекательный мир манипуляций со строками в Rust. Одной из распространенных задач, с которыми мы часто сталкиваемся, является удаление последнего символа из строки. Итак, берите свой любимый напиток, садитесь поудобнее и давайте рассмотрим несколько интересных способов добиться этого в Rust!

Метод 1: нарезка ломтиками и кубиками
Первый метод так же прост, как поднести нож к буханке хлеба. В Rust строки можно рассматривать как массивы байтов, что позволяет нам использовать срез для удаления последнего символа. Посмотрите этот фрагмент кода:

fn remove_last_char(s: &str) -> &str {
    &s[..s.len() - 1]
}
fn main() {
    let my_string = String::from("Hello, Rustaceans!");
    let truncated_string = remove_last_char(&my_string);
    println!("{}", truncated_string);
}

Метод 2: Поп! Выходит последний символ
Если вы предпочитаете более интересный подход, мы можем преобразовать нашу строку в изменяемый вектор символов, используя chars()и collect(). Затем мы можем просто вызвать pop(), чтобы удалить последний символ:

fn remove_last_char(s: &str) -> String {
    let mut chars: Vec<char> = s.chars().collect();
    chars.pop();
    chars.into_iter().collect()
}
fn main() {
    let my_string = String::from("Hello, Rustaceans!");
    let truncated_string = remove_last_char(&my_string);
    println!("{}", truncated_string);
}

Метод 3: поиск и уничтожение
Если вы предпочитаете более практичный метод поиска по индексу, мы можем использовать функцию split_at(), чтобы разделить строку на две части и исключить последнюю. персонаж:

fn remove_last_char(s: &str) -> &str {
    let index = s.len() - 1;
    let (truncated, _) = s.split_at(index);
    truncated
}
fn main() {
    let my_string = String::from("Hello, Rustaceans!");
    let truncated_string = remove_last_char(&my_string);
    println!("{}", truncated_string);
}

Метод 4: Побайтно
Для тех, кто предпочитает подход на уровне байтов, мы можем преобразовать нашу строку в байтовый срез, используя as_bytes(), а затем обрезать последний байт:

fn remove_last_char(s: &str) -> &str {
    let bytes = s.as_bytes();
    let truncated_bytes = &bytes[..bytes.len() - 1];
    unsafe { std::str::from_utf8_unchecked(truncated_bytes) }
}
fn main() {
    let my_string = String::from("Hello, Rustaceans!");
    let truncated_string = remove_last_char(&my_string);
    println!("{}", truncated_string);
}

Метод 5: Regex Pizzazz
Если вам нравятся возможности регулярных выражений, мы можем использовать крейт regexдля удаления последнего символа из строки:

use regex::Regex;
fn remove_last_char(s: &str) -> String {
    let re = Regex::new(r".(?=.$)").unwrap();
    re.replace_all(s, "").to_string()
}
fn main() {
    let my_string = String::from("Hello, Rustaceans!");
    let truncated_string = remove_last_char(&my_string);
    println!("{}", truncated_string);
}

И вот оно, ребята! Пять различных методов удаления последнего символа из строки в Rust. Выберите тот, который лучше всего соответствует вашему стилю кодирования и требованиям проекта. Приятного ржавления!