Чтобы получить n-й символ в строке Rust, у вас есть несколько вариантов. Вот несколько методов и примеры кода:
-
Использование метода
chars():fn get_nth_char_using_chars(s: &str, n: usize) -> Option<char> { s.chars().nth(n) }Этот метод преобразует строку в итератор символов с помощью метода
chars(), а затем используетnth()для извлечения n-го символа. Он возвращаетOption, если индекс выходит за пределы диапазона. -
Использование байтовой индексации:
fn get_nth_char_using_bytes(s: &str, n: usize) -> Option<char> { if let Some(byte_index) = s.as_bytes().get(n) { Some(s.chars().nth(*byte_index as usize)?) } else { None } }В этом подходе мы сначала получаем байт по указанному индексу, используя
as_bytes()иget(). Затем мы преобразуем индекс байта в индекс символа и используемnth()для получения символа. -
Использование нарезки:
fn get_nth_char_using_slice(s: &str, n: usize) -> Option<char> { s.get(n..)?.chars().next() }Этот метод использует нарезку для извлечения подстроки, начиная с n-го символа. Затем мы используем
chars()для преобразования подстроки в итератор символов иnext()для получения первого символа. -
Использование метода
get():fn get_nth_char_using_get(s: &str, n: usize) -> Option<char> { s.get(n..=n)?.chars().next() }В этом подходе мы используем
get()с диапазоном отnдоn, чтобы извлечь подстроку, содержащую только n-й символ. Затем мы используемchars()иnext()для получения символа.