这是代码:
namespace TrimTest
{
class Program
{
static void Main(string[] args)
{
string ToTrim = "PRN.NUL";
Console.WriteLine(ToTrim);
string Trimmed = ToTrim.TrimStart("PRN.".ToCharArray());
Console.WriteLine(Trimmed);
ToTrim = "PRN.AUX";
Console.WriteLine(ToTrim);
Trimmed = ToTrim.TrimStart("PRN.".ToCharArray());
Console.WriteLine(Trimmed);
ToTrim = "AUX.NUL";
Console.WriteLine(ToTrim);
Trimmed = ToTrim.TrimStart("AUX.".ToCharArray());
Console.WriteLine(Trimmed);
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
PRN.NUL
UL
PRN.AUX
AUX
AUX.NUL
NUL
如您所见,TrimStart从NUL中取出了N. 但即使从PRN开始,它也不会对其他字符串这样做.
我尝试使用.NET Framework 3.5和4.0,结果是一样的.是否有任何解释导致这种行为的原因?
Mat*_*nen 10
String.TrimStart适用于角色级别.你正在做的是告诉它删除任何"P","R","N"或".".从一开始的字符 - 因此点后面的前N也被删除.
如果要从字符串的开头删除某个字符串,首先使用StartsWith确保它在那里,然后使用Substring来获取字符串的正确部分.