删除字符串中分隔符最后一次出现后的字符

本文关键字:字符 最后一次 字符串 分隔符 删除 | 更新日期: 2023-09-27 18:34:44

有没有办法在最后一次出现分隔符后删除字符串中的字符?

我研究了以下问题。

按最后一个分隔符拆分字符串 - 在这种情况下,将省略最后一次出现之前的字符。但我只需要与此相反的东西。

从 C# 中的字符串中删除最后字符。优雅的方式?- 此处删除了分隔符第一次出现后的字符。

例如我有一个字符串

"D:'dir1'subdir1'subdir11'subdir111'file1.txt"

我期望的结果是

"D:'dir1'subdir1'subdir11'subdir111"

注意:这只是一个示例。我也需要一个解决方案来在其他情况下工作。

删除字符串中分隔符最后一次出现后的字符

您可以使用

String.Remove()方法。

string test = @"D:'dir1'subdir1'subdir11'subdir111'file1.txt";
string result = test.Remove (test.LastIndexOf (''''));

存储在result中的值将是

"D:'dir1'subdir1'subdir11'subdir111"

您可以使用 LastIndexOf 轻松实现此目的

string str =@"D:'dir1'subdir1'subdir11'subdir111'file1.txt"
str= str.SubString(0,str.LastIndexOf("''"));

如果您正在寻找通用的东西,请创建扩展方法

public static string GetStringBeforeLastIndex(this string str,string delimeter)
{
  return str.SubString(0,str.LastIndexOf(delimeter));
}

现在你只需要调用该方法

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

应该是最安全的方法

string Pathname = @"D:'dir1'subdir1'subdir11'subdir111'file1.txt";
string Result = Path.GetDirectoryName(Pathname);