gpt4 book ai didi

c# - 当要求修剪 "PRN.NUL"时,为什么 TrimStart 会修剪更多字符?

转载 作者:行者123 更新时间:2023-11-30 19:07:55 26 4
gpt4 key购买 nike

代码如下:

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

输出是这样的:

PRN.NUL

UL

PRN.AUX

辅助

AUX.NUL

如您所见,TrimStart 从 NUL 中取出 N。但它不会对其他字符串执行此操作,即使它以 PRN 开头也是如此。

我尝试使用 .NET Framework 3.5 和 4.0,结果是一样的。是否有任何解释导致这种行为的原因?

最佳答案

String.TrimStart 在字符级别上工作。您正在做的是告诉它删除任何“P”、“R”、“N”或“.”。从头开始的字符 - 因此点后的第一个 N 也被删除。

如果你想从字符串的开头删除某个字符串,首先使用 StartsWith 确保它在那里,然后使用 Substring 来获取字符串的正确部分。

关于c# - 当要求修剪 "PRN.NUL"时,为什么 TrimStart 会修剪更多字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2836960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com