以下C#代码:
using System;
namespace TrimTest {
class Program {
static void Main(string[] args) {
Console.WriteLine(Environment.CommandLine);
Console.WriteLine(Environment.CommandLine.Trim('"'));
Console.ReadKey(false);
}
}
}
产生以下输出:
"D:\Projects\TrimTest\TrimTest\bin\Debug\TrimTest.vshost.exe"
D:\Projects\TrimTest\TrimTest\bin\Debug\TrimTest.vshost.exe"
除非我误读了the documentation:
从trimChars参数中所有出现的字符后剩余的字符串将从当前String对象的开头和结尾删除。如果trimChars为null或为空数组,则会删除空格字符。
不应该从该输出中的第二个字符串中修剪尾部双引号吗?
答案 0 :(得分:4)
看起来你可能会遇到上一次双引号后有空格的情况。
尝试:
Console.WriteLine(Environment.CommandLine.Trim().Trim('"'));
看看会发生什么。
您还可以将参数数组中的额外字符传递给您已经使用的重载:
Console.WriteLine(Environment.CommandLine.Trim('"', ' '));
但由于我不知道有什么类型的空格,我更喜欢使用删除所有空格的重载而不是猜测那里有哪个字符。
答案 1 :(得分:0)
正如贾斯汀所提到的,尾随空白就是问题所在。试试这个:
Console.WriteLine(Environment.CommandLine.Trim( new[] {'"', ' '} ));
答案 2 :(得分:0)
它从一开始就结束,但在你的情况下,你不能看到还有一个空格=) ion15.vshost.exe“
答案 3 :(得分:0)
原来最后有一个空间:
Console.WriteLine(Environment.CommandLine);
Console.WriteLine(Environment.CommandLine.Trim('"'));
这个有效:
string commandLine = Environment.CommandLine.Trim(new char[] {'"', ' '});
Console.WriteLine(commandLine);