嗯,标题说明了一切。在这种情况下,回复输出“This is a”。
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;
}
答案 0 :(得分:9)
TrimStart
和TrimEnd
,以及用于更改字符串返回更改后的字符串的所有其他方法。由于字符串为immutable,它们永远不会更改字符串。
nStr = nStr.TrimStart(' ').TrimEnd(' ');
您可以通过调用Trim
来调整字符串
nStr = nStr.Trim();
答案 1 :(得分:2)
您需要将TrSStart中的nStr更新为返回的sting,然后对TrimEnd执行相同操作。
nStr = nStr.TrimStart(' ');
nStr = nStr.TrimEnd(' ');
var tokens = (nStr ?? "").Split(' ');
var 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;