【发布时间】:2014-12-25 10:10:19
【问题描述】:
嗯,标题说明了一切。在这种情况下,回复正在输出“这是一个”。
Trim 是否存在已知错误?我在这里唯一的想法是,这与我将fnms 作为一种方法实现这一事实有关,尽管我认为这没有问题?
string nStr = " This is a test"
string fnms(string nStr)
{
nStr.TrimStart(' '); //doesn't trim the whitespace...
nStr.TrimEnd(' ');
string[] tokens = (nStr ?? "").Split(' ');
string delim = "";
string reply = null;
for (int t = 0; t < tokens.Length - 1; t++)
{
reply += delim + tokens[t];
delim = " ";
}
//reply.TrimStart(' '); //It doesn't work here either, I tried.
//reply.TrimEnd(' ');
return reply;
}
【问题讨论】:
-
你必须做 nStr = nStr.TrimStart(),字符串是不可变的
-
无关,但您的
(nStr ?? "")没有意义。如果nStr == null,nStr.TrimStart(' ')会抛出NullReferenceException,所以如果你到第三行,你已经知道nStr不能是null。 -
@hvd 是的,你是对的。如此制定它的唯一原因是因为我刚刚意识到需要实施它。但是,在此之前,我将数组创建作为方法中的第一个任务。
-
您可以使用
nStr = nStr.Trim();一次修剪前导和尾随空格。 -
@Sinatr 我认为这会完全删除所有空格?