字符串修剪开始

时间:2013-03-13 00:42:11

标签: 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.Settings.Default.pathTo必须被转义,但我不知道该怎么做。

3 个答案:

答案 0 :(得分:1)

TrimStart从字符串的开头删除单个字符,它不会删除字符串。换句话说,您的示例将从头开始删除所有点,斜杠,'C' s,'o' s,'n'等等 - 它们不一定必须在顺序中您的源字符串。

我想你想要这样的东西:

if(Locations[i].StartsWith(loc);
    Locations[i] = Locations[i].Substring(loc.Length);

答案 1 :(得分:0)

我希望您了解ToCharArray表示将删除这些字符in any order(只要中间没有其他字符)...

你可能真的想做这样的事情(虽然我可能错了)

    public static string StripStart(this string text, string value, bool ignoreCase = false)
    {
        // if(text.EndsWith...
        if (text.StartsWith(value, ignoreCase, CultureInfo.InvariantCulture))
            return text.Substring(value.Length);
        return text;
    }

这非常简单,但应该有效

希望有所帮助

答案 2 :(得分:-1)

我认为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;
}