Menu
Coddy logo textTech

Методы строк

Часть раздела Fundamentals путешествия по Rust на Coddy. Урок 69 из 75.

Rust обладает богатым набором встроенных строковых методов, которые позволяют выполнять различные операции со строками. Эти методы предоставляют функциональные возможности для манипулирования, поиска и преобразования строк. Вот некоторые часто используемые строковые методы:

  • len(): Возвращает количество байтов в строке (равно количеству символов для текста ASCII).
  • chars().nth(index): Возвращает символ по указанному индексу (начиная с 0). Этот метод возвращает Option<char> — специальный тип Rust, который представляет либо значение Some (если индекс существует) или None (если нет). Вызов .unwrap() для него извлекает значение символа напрямую.
  • contains(substring): Проверяет, содержит ли строка указанную подстроку.
  • starts_with(prefix): Проверяет, начинается ли строка с указанного префикса.
  • ends_with(suffix): Проверяет, заканчивается ли строка указанным суффиксом.
  • to_uppercase(): Преобразует строку в верхний регистр.
  • to_lowercase(): Преобразует строку в нижний регистр.
  • trim(): Удаляет начальные и конечные пробелы из строки.

Например:

let message = "Hello, World!";
let length = message.len();
let firstChar = message.chars().nth(0).unwrap();
let contains_world = message.contains("World");
let starts_with_hello = message.starts_with("Hello");
let lower = message.to_lowercase();
challenge icon

Задание

Легко

Создайте метод с именем analyzeString, который принимает строку в качестве входных данных и выводит следующий анализ, используя строковые методы:

  1. Длина строки
  2. Символ по индексу 4
  3. Содержит ли строка подстроку "Rust"
  4. Заканчивается ли строка точкой .
  5. Строка, преобразованная в верхний регистр

Вывод должен соответствовать следующему формату:

Length: [Длина]
Char at 4: [Символ по индексу 4]
Contains Rust: [true или false]
Ends with dot: [true или false]
Uppercase: [Строка в верхнем регистре]

Примечание: Предполагается, что входная строка будет достаточно длинной для всех операций.

Попробуйте сами

use std::io;

fn analyze_string(s: &str) {
    // Напишите свой код здесь
}

fn main() {
    let mut message = String::new();
    io::stdin().read_line(&mut message).unwrap();
    let message = message.trim();
    analyze_string(message);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Fundamentals

Потренируйтесь самостоятельно: Онлайн-компилятор Rust