如何在Rust中获取字符串的最后n个字符?[副本]

qyyhg6bp  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(244)

此问题已在此处有答案

How to get the last character of a &str?(3个答案)
7天前关闭
在python中,你可以像这样得到一个字符串的最后5个字符:

s[-5:]

如何在Rust中简洁地做同样的事情?我能想到的最好的办法是非常冗长:

s.chars().rev().take(5).collect::<Vec<_>>().into_iter().rev().collect()
hyrbngr7

hyrbngr71#

使用char_indices

let s = "Hello, World!";
let last_five = {
    let split_pos = s.char_indices().nth_back(4).unwrap().0;
    &s[split_pos..]
};
assert_eq!("orld!", last_five);

如果您需要经常执行此操作,请考虑使用UTF-32编码。要将字符串转换为UTF-32,您需要执行以下操作:let utf_32: Vec<char> = s.chars().collect()。在这种情况下,您可以执行&utf_32[utf_32.len()-5..]

相关问题