1

当您在字符串对象上使用Trim()方法时,您可以将一个字符数组传递给它,它将从您的字符串中删除这些字符,例如:

string strDOB = "1975-12-23     ";
MessageBox.Show(strDOB.Substring(2).Trim("- ".ToCharArray()));

这个结果是“75-12-23”而不是预期的结果:“751223”,这是为什么呢?

额外的问题:与这条线相比,哪一个会有更多的开销(它做完全相同的事情):

strDOB.Substring(2).Trim().Replace("-", "");
4

5 回答 5

8

因为修剪函数只修剪字符串末尾的字符。

如果您想在任何地方消除它们,请使用替换...

于 2009-09-01T15:09:34.353 回答
1

来自 MSDN:

返回一个新字符串,其中 删除了当前 String 对象中一组指定字符的所有前导尾随出现。

我想这是不言自明的。

于 2009-09-01T15:11:31.447 回答
0

其他人回答正确修剪只修剪字符串开头和结尾的字符。利用:-

Console.WriteLine( strDOB.Substring(2, 8).Replace("-","") )

这假定原始字符串中的固定格式。至于性能,除非你做了一百万个,否则我不会担心。

于 2009-09-01T15:19:35.237 回答
0

修剪仅从开始和结束删除。如果您想从字符串中删除,请使用 Replace。

于 2009-11-13T10:58:19.307 回答
0

Trim仅删除字符串开头和结尾的字符。内部“-”字符不会被删除,就像内部空格一样。你想要Replace()

于 2009-09-01T15:10:37.050 回答