[C#]我对Trim()、TrimStart()、TrimEnd()的错误认识

这三个方法用于删除字符串头尾出现的某些字符。Trim()删除字符串头部及尾部出现的空格,删除的过程为从外到内,直到碰到一个非空格的字符为止,所以不管前后有多少个连续的空格都会被删除掉。TrimStart()只删除字符串的头部的空格。TrimEnd()只删除字符串尾部的空格。

如果这三个函数带上字符型数组的参数,则是删除字符型数组中出现的任意字符。如Trim("abcd".ToCharArray())就是删除字符串头部及尾部出现的a或b或c或d字符,删除的过程直到碰到一个既不是a也不是b也不是c也不是d的字符才结束。 

这里最容易引起的误会就是以为删除的是"abcd"字符串。如下例:

string ClassID = "2005030401<hr class='h2' />2005030402<hr class='h2' />";
ClassID = ClassID.TrimEnd("<hr class='h2' />".ToCharArray());

我的目的是删除最后的那根水平线,当时也确实是用的这种方法,并没有觉得有什么不妥,直到系统运行后,一天老师给我说班号显示不全,而其他有些又是对的,我百思不得其解,根本没想到是这里除了问题,后来调试了好几次才发现,关键就在于“<hr class='h2' />”和“2005030402”都有个“2”,而且中间没其它字符,所以结果是“2005030401<hr class='h2' />200503040”,而不是“2005030401<hr class='h2' />2005030402”。需要注意的是这种写法执行的删除对象是字符数组中出现的任意字符,而不是这些字符连在一起组成的字符串! 

其实,其实上面这个例子也可以这样实现:

ClassID = ClassID.Substring(0, ClassID.LastIndexOf("<"));

转载于:https://www.cnblogs.com/hechaoyang/archive/2010/12/07/1898845.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值