社区
C#
帖子详情
发一个有点让人 XX 的小小问题。
cejay
2010-10-20 09:09:46
我想知道C#里string方法里面的Trim()的执行原理。注意是执行原理,不是怎么用。
比如说,它继承自那个接口,用什么方法实现的,实现原理是什么。
还望高手赐教一下,呵呵
注:标题中的xx译为“蛋疼”
...全文
396
28
打赏
收藏
发一个有点让人 XX 的小小问题。
我想知道C#里string方法里面的Trim()的执行原理。注意是执行原理,不是怎么用。 比如说,它继承自那个接口,用什么方法实现的,实现原理是什么。 还望高手赐教一下,呵呵 注:标题中的xx译为“蛋疼”
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
28 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
chen870201
2010-10-21
打赏
举报
回复
去除前后空格- -
pigadd
2010-10-21
打赏
举报
回复
[Quote=引用 20 楼 angelo1011 的回复:]
- -|||
直接string.replace(" ","");
就相当于trim()勒。
[/Quote]
非也,Trim()只去前后空格
你这把所有空格都去了
r2010000hyq
2010-10-21
打赏
举报
回复
看一下,学习
lrh_079
2010-10-21
打赏
举报
回复
refletor
好方法啊
杨友山
2010-10-21
打赏
举报
回复
看一下,学习
firstcoo
2010-10-21
打赏
举报
回复
学习了。真奇怪,这么多高手,联合起来,怎么就没搞定微软呢。
zekelove
2010-10-21
打赏
举报
回复
不清楚~~~~~~
troy2012
2010-10-21
打赏
举报
回复
路過,幫頂..
angelo1011
2010-10-20
打赏
举报
回复
- -|||
直接string.replace(" ","");
就相当于trim()勒。
yudengchang
2010-10-20
打赏
举报
回复
见识了,牛人真多.............
qgj1655
2010-10-20
打赏
举报
回复
原理就是,从前面一个字符一个字符去判断,然后到后面一个字符一个字符去判断。
wiki14
2010-10-20
打赏
举报
回复
[Quote=引用 3 楼 cejay 的回复:]
二楼大哥,
我想知道执行Trim()方法时程序到底是怎么执行的
[/Quote]
都告诉你是那个dll里的,你跟着这个线索反编译一下去看就可以了。
lmdkboy
2010-10-20
打赏
举报
回复
make~~学习了
cejay
2010-10-20
打赏
举报
回复
为了让跟多的和我一样不明白的人看到高手的回答,就先不结贴了
cejay
2010-10-20
打赏
举报
回复
我仅仅是想知道Trim这个最简单的方法到底是怎么写的,
我也没什么用处,就是忽然想知道罢了,呵呵
kkbac
2010-10-20
打赏
举报
回复
都是大牛,学习。
hao1hao2hao3
2010-10-20
打赏
举报
回复
干嘛?想自己实现?通过自带的反编译工具试试。
cejay
2010-10-20
打赏
举报
回复
一会回了这么多楼,呵呵,我以为我这个无聊的问题不会有人回的呐,谢谢几位楼上的大哥
wuyq11
2010-10-20
打赏
举报
回复
internal static readonly char[] WhitespaceChars =
{ (char) 0x9, (char) 0xA, (char) 0xB, (char) 0xC, (char) 0xD, (char) 0x20, (char) 0x85,
(char) 0xA0, (char)0x1680,
(char) 0x2000, (char) 0x2001, (char) 0x2002, (char) 0x2003, (char) 0x2004, (char) 0x2005,
(char) 0x2006, (char) 0x2007, (char) 0x2008, (char) 0x2009, (char) 0x200A, (char) 0x200B,
(char) 0x2028, (char) 0x2029,
(char) 0x3000, (char) 0xFEFF };
public String Trim(params char[] trimChars) {
if (null==trimChars || trimChars.Length == 0) {
trimChars=WhitespaceChars;
}
return TrimHelper(trimChars,TrimBoth);
}
public String TrimStart(params char[] trimChars) {
if (null==trimChars || trimChars.Length == 0) {
trimChars=WhitespaceChars;
}
return TrimHelper(trimChars,TrimHead);
}
public String TrimEnd(params char[] trimChars) {
if (null==trimChars || trimChars.Length == 0) {
trimChars=WhitespaceChars;
}
return TrimHelper(trimChars,TrimTail);
}
public String Trim() {
return TrimHelper(WhitespaceChars,TrimBoth);
}
private String TrimHelper(char[] trimChars, int trimType) {
int end = this.Length-1;
int start=0;
if (trimType !=TrimTail) {
for (start=0; start < this.Length; start++) {
int i = 0;
char ch = this[start];
for( i = 0; i < trimChars.Length; i++) {
if( trimChars[i] == ch) break;
}
if( i == trimChars.Length) {
break;
}
}
}
if (trimType !=TrimHead) {
for (end= Length -1; end >= start; end--) {
int i = 0;
char ch = this[end];
for(i = 0; i < trimChars.Length; i++) {
if( trimChars[i] == ch) break;
}
if( i == trimChars.Length) {
break;
}
}
}
int len = end -start + 1;
if (len == this.Length) {
return this;
}
else {
if( len == 0) {
return String.Empty;
}
return InternalSubString(start, len, false);
}
}
wuyq11
2010-10-20
打赏
举报
回复
查看IL
refletor
加载更多回复(6)
A02.
XX
系统-实施进度计划
1.1.软件开
发
『描述开
发
各阶段工作及...阶段 任务 主要负责人 工期 软 件 开
发
阶段合计 公用功能开
发
建立数据库与公用数据库程序开
发
公用JAVA类开
发
流程控制 1.2.系统测试/系统演示与征求意见修改
我是
一个
小小
的程序员。
实在想不出什么好的标题。 也许最近是各种空虚寂寞冷,所以蛋疼的上来
发
发
帖子;前几天才满的25,突然
发
现时间过的好快,家里...闲来喜欢到处看IT论坛,今天看到论坛置顶的一篇“7年IT”生涯,有感而
发
,趁着年轻,
【TC3
xx
芯片】TC3
xx
芯片的Clock System功能详解
TC3
xx
芯片的Clock System功能详解
小小
感触--记
一个
日方负责人
其中一条叫我们把
一个
编译好的程序
发
给他。从老大那了解到,我们这边实验室的机器编译一次20来分钟,他们要两个半小时,我说:日本电子产品不是很便宜么,应该是便宜的不能再便宜的东西了。老大告诉我其实他们换机器...
转载:周航:与其失望 不如创新
今年春节有
一个
特别的话题,许多人拜年不再
发
短信,而是改
发
微信了...有人操心地给三大运营商算了算账,说
一个
小小
微信就快温水煮了三大垄断巨头,少赚了
XX
亿,以后甚至还要少赚
XX
X亿,搞不好哪天甚至经营困难,乃至破
C#
110,538
社区成员
642,577
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章