我有一个看似简单的问题,即从 Rust 中的字符串中提取第一个和最后一个字母数字字符。请考虑下面我的简约示例:
fn main() {
let s: String = "Peace to the world!".to_string();
// check: string is not empty
if !s.is_empty() {
let s = s.to_uppercase();
let fidx = s.find(char::is_alphanumeric).unwrap();
println!("fidx: {fidx}");
let fchar = s.get(fidx..fidx).unwrap();
println!("fchar: {fchar}");
let lidx = s.rfind(char::is_alphanumeric).unwrap();
println!("lidx: {lidx}");
let lchar = s.get(lidx..lidx).unwrap();
println!("lchar: {lchar}");
}
}
我的代码为
fchar
和 lchar
返回空字符。如何从字符串中获取这些字符?您也请检查我的代码吗——我不确定这是最短、最优雅的解决方案。
fidx..fidx
始终为空,因为第二个值排除了。
您可能想使用包含范围:
let fchar = s[fidx..=fidx];