You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust中查找字符串最后一个指定字符的索引?以斜杠/为例

在Rust中查找字符串最后一个正斜杠的索引

其实Rust里也有类似Python rfind的方法,而且用法很直观!你要找的就是str类型自带的rfind方法,它完全能满足你的需求。

举个你提到的例子,针对字符串"/test1/test2/test3",我们可以这样用:

fn main() {
    let path = "/test1/test2/test3";
    
    // 查找最后一个'/'的索引,返回Option<usize>
    match path.rfind('/') {
        Some(index) => {
            println!("最后一个斜杠的索引是: {}", index);
            // 如果你想获取斜杠后面的内容(比如test3),可以直接切片
            let filename = &path[index + 1..];
            println!("斜杠后的内容: {}", filename);
        }
        None => println!("字符串里没有找到正斜杠"),
    }
}

简单解释一下:

  • rfind会从字符串的末尾开始向前查找指定的模式(这里是单个字符'/'),找到第一个匹配项后返回它的索引,结果被包装在Option<usize>中——这是Rust安全设计的一部分,避免了Python里返回-1可能带来的索引越界问题。
  • 如果字符串中没有'/',rfind会返回None,所以我们需要用match或者if let来处理这两种情况,确保代码的健壮性。

如果你习惯了Python的写法,可能一开始没注意到Rust标准库已经提供了这个方法,它的功能和Python的rfind完全一致,只是返回值的处理方式更符合Rust的安全理念~

内容的提问来源于stack exchange,提问作者somesingsomsing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:43:13