不能给LastIndexOf()方法添加1
本文关键字:方法 添加 LastIndexOf 不能 | 更新日期: 2023-09-27 18:04:25
我有一个方法,根据最后出现的正斜杠字符获取子字符串。
path.Substring(path.LastIndexOf('/'), path.Length - path.LastIndexOf('/') )
给定字符串The/quick/brown/fox
,我得到/fox
的子字符串结果。我想摆脱正斜杠字符,这样我只得到fox
作为结果。
我尝试将1添加到LastIndexOf()
方法,但我得到的是ArgumentOutOfRangeException
。
path.Substring(path.LastIndexOf('/') + 1, path.Length - path.LastIndexOf('/'))
LastIndexOf()
方法返回一个int
,为什么增加1会导致错误?
您考虑过更简单的String.Split
吗?
var str = "The/quick/brown/fox";
var result = str.Split('/').Last();
//result = "fox"
假设您的路径有/
,请尝试只使用Substring(int startIndex)
:
path.Substring(path.LastIndexOf('/') + 1);
(为了使示例工作,需要从第二个参数(所需子字符串的长度)中扣除1
。)
但使用Path.GetFileName
:
Path.GetFileName("The/quick/brown/fox");
如果它确实是一个路径,请查看'System.IO.Path'中可用的路径操作函数。使用
您将得到所需的结果Path.GetFileName(path)
我认为你可以用LINQ做得更好:
path.Split('/').LastOrDefault();