在字符串对象上使用 Trim()方法时,可以将字符数组传递给它,它将从字符串中删除这些字符,例如:
string strDOB = "1975-12-23 ";
MessageBox.Show(strDOB.Substring(2).Trim("- ".ToCharArray()));
结果为“75-12-23”而非预期结果:“751223”,为什么会这样?
加分问题: 与此行相比,哪一个会有更多的开销(它完全相同):
strDOB.Substring(2).Trim().Replace("-", "");
答案 0 :(得分:8)
因为修剪功能仅修剪字符串末尾的字符。
如果你想在任何地方消除它们,请使用替换......
答案 1 :(得分:1)
来自MSDN:
返回一个全新的字符串 从前导和尾随出现一组指定字符 删除当前的String对象。
我猜这是不言自明的。
答案 2 :(得分:0)
Trim
仅从字符串的开头和结尾删除字符。内部' - '字符不会被删除,只不过是内部空格。你想要Replace()
。
答案 3 :(得分:0)
其他人已正确回答修剪只修剪字符串开头和结尾的字符。使用: -
Console.WriteLine( strDOB.Substring(2, 8).Replace("-","") )
这假定原始字符串中的格式是固定的。至于表现,除非你做了一百万,否则我不担心。
答案 4 :(得分:0)
修剪仅从开始和结束中删除。如果你想从字符串中删除,请使用替换。