C# 字符串修剪开始
此代码提供正确的结果C# 字符串修剪开始,c#,string,C#,String,此代码提供正确的结果 Locations[i] = Locations[i].TrimStart(@"..\Config\Locations".ToCharArray()); 但不是这个 String loc = Properties.Settings.Default.pathTo + @"\Config\Locations"; Locations[i] = Locations[i].TrimStart(loc.ToCharArray()); 不起作用。我认为必须对Properties.Se
Locations[i] = Locations[i].TrimStart(@"..\Config\Locations".ToCharArray());
但不是这个
String loc = Properties.Settings.Default.pathTo + @"\Config\Locations";
Locations[i] = Locations[i].TrimStart(loc.ToCharArray());
不起作用。我认为必须对
Properties.Settings.Default.pathTo
进行转义,但我不知道如何进行转义。TrimStart
从字符串的开头删除单个字符,但不会删除字符串。换句话说,您的示例将从一开始就删除所有点、斜线、'C'
s、'o'
s、'n'
s等,它们不一定必须按照源字符串的顺序
我想你想要这样的东西:
if(Locations[i].StartsWith(loc);
Locations[i] = Locations[i].Substring(loc.Length);
我希望您理解
ToCharArray
意味着这些字符将以任何顺序删除(只要中间没有其他字符)
你可能真的想做这样的事情(尽管我可能错了)
这是非常简单的,但应该有效
希望它有帮助我认为NSGaga是对的,希望它能帮助你
public static string StripStart(this string text, string value, bool ignoreCase = false)
{
if (text.StartsWith(value, ignoreCase, CultureInfo.InvariantCulture))
return text.Substring(value.Length);
return text;
}
什么是正确的结果?你收到了什么?始终提供解决问题所需的尽可能多的信息。正确的结果是目录位置的文件夹,如果我使用第二个codeProperties.Settings.Default.pathTo是C:\dir,如果您同意answe,请向该答案添加注释,而不是逐字重新发布答案。
public static string StripStart(this string text, string value, bool ignoreCase = false)
{
if (text.StartsWith(value, ignoreCase, CultureInfo.InvariantCulture))
return text.Substring(value.Length);
return text;
}