Rust:
Виділення підрядків
Як це зробити:
fn main() {
let text = "Вітання з України!";
let start = text.find('з').expect("Substring not found");
let end = start + 'з'.len_utf8();
let substring: &str = &text[start..end];
println!("The substring is: {}", substring);
}
Вивід:
The substring is: з
Щоб витягти слово “України”, робимо так:
fn main() {
let text = "Вітання з України!";
let start = text.find('У').unwrap_or(0);
let end = text.len();
let substring = &text[start..end];
println!("The substring is: {}", substring);
}
Вивід:
The substring is: України!
Глибоке занурення
Витягування підрядків у Rust відбувається через зрізи рядків, які беруть початковий і кінцевий індекси. Історично, Rust розвинувся з мови, що наголошує на безпеку пам’яті та паралелізм, тому він використовує сувору систему позицій для уникнення помилок, як-от “index out of bounds”.
Є альтернативні способи витягнення підрядків, наприклад, метод split
для розділення рядка по роздільникам або регулярні вирази з крейта regex
для більш складних шаблонів.
Деталі реалізації: витягування оперує Unicode скалярами, не байтами, що важливо для коректної обробки текстів, подібних до української мови з її специфічними символами. Невірно вираховані індекси можуть привести до panic за несподіваним збоєм в коді, отже краще користуватися методами find
чи chars().nth()
для безпечного доступу до певних символів.