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);  |