Remove characters after the last appearance of a delimiter in a string
是否有方法删除最后一次出现分隔符后字符串中的字符?
我已经研究了以下问题。
按最后一个分隔符拆分字符串-在本例中,省略最后一次出现之前的字符。但我需要的恰恰相反。
从C中的字符串中删除最后一个字符。优雅的方式?-这里删除第一次出现分隔符后的字符。
例如我有一根绳子
1 | "D:\dir1\subdir1\subdir11\subdir111\file1.txt" |
我期望的结果是
1 | "D:\dir1\subdir1\subdir11\subdir111" |
注意:这只是一个例子。在其他情况下,我也需要一个解决方案。
您可以使用
1 2 | string test = @"D:\dir1\subdir1\subdir11\subdir111\file1.txt"; string result = test.Remove (test.LastIndexOf ('\')); |
存储在
1 | "D:\dir1\subdir1\subdir11\subdir111" |
您可以使用lastindexof轻松实现这一点
1 2 | string str =@"D:\dir1\subdir1\subdir11\subdir111\file1.txt" str= str.SubString(0,str.LastIndexOf("\")); |
如果要查找一般的内容,请创建扩展方法
1 2 3 4 | public static string GetStringBeforeLastIndex(this string str,string delimeter) { return str.SubString(0,str.LastIndexOf(delimeter)); } |
现在你只需要调用这个方法
1 2 3 4 5 | string str =@"D:\dir1\subdir1\subdir11\subdir111\file1.txt" str = str.GetStringBeforeLastIndex("\"); you can pass any delimeter string str =@"asdd-asdasd-sdfsdf-hfghfg" str = str.GetStringBeforeLastIndex("-"); |
这应该是最安全的方法
1 2 | string Pathname = @"D:\dir1\subdir1\subdir11\subdir111\file1.txt"; string Result = Path.GetDirectoryName(Pathname); |