C#操作字符串经验总结Word文档下载推荐.docx

上传人:b****6 文档编号:21197475 上传时间:2023-01-28 格式:DOCX 页数:13 大小:19.11KB
下载 相关 举报
C#操作字符串经验总结Word文档下载推荐.docx_第1页
第1页 / 共13页
C#操作字符串经验总结Word文档下载推荐.docx_第2页
第2页 / 共13页
C#操作字符串经验总结Word文档下载推荐.docx_第3页
第3页 / 共13页
C#操作字符串经验总结Word文档下载推荐.docx_第4页
第4页 / 共13页
C#操作字符串经验总结Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C#操作字符串经验总结Word文档下载推荐.docx

《C#操作字符串经验总结Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#操作字符串经验总结Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

C#操作字符串经验总结Word文档下载推荐.docx

"

1234"

;

int 

myint 

0;

Convert.ToInt32(myString);

Console.Write(myint+"

\r\n 

);

Int32.Parse(myString);

Int32.TryParse(myString, 

out 

myint);

\r\n"

}

}

表面上看,可见3个方法都实现了同样的效果!

那么我们把代码改一下:

//string 

null;

这次字符串是null,那么运行结果会怎样呢?

这是因为如果解析错误:

Convert.ToInt32()在null时不抛异常而是返回0;

Int32.Parse()要抛异常;

Int32.TryParse()不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。

由于Convert.ToInt32()在null时我们看不到Int32.TryParse()的运行结果所以再分调试和不调试来看结果的差异:

调试:

不调试:

其实一般出bug毕竟属于少数,而且大家都会测试保证不出bug,那么我们最关心的或许就是性能。

再把代码修改一下:

2

myString1 

//清清月儿 

Console.Write(System.DateTime.Now.ToString()+"

+System.DateTime.Now.Millisecond.ToString() 

for 

(int 

<

1000000;

i++ 

Convert.ToInt32(myString1);

Console.Write(myint 

Console.Write(System.DateTime.Now.ToString() 

System.DateTime.Now.Millisecond.ToString() 

myString2 

i++)

Int32.Parse(myString2);

myString3 

Int32.TryParse(myString3, 

我们让3个方法执行100万次转换看毫秒的差异:

为了准确多做几次测试:

第二次

第三次

第一次第二次第三次

Convert.ToInt32() 

532-204=328 

1163-750=413 

782-469=313 

Int32.Parse() 

844-532=312 

360-63=297 

1094-782=312 

Int32.TryParse() 

1141-844=297 

657-360=297 

375-94=281 

其实我们可以得出结论:

3个方法几乎没有差异!

如果真要追求完美那么性能的差异是:

Int32.TryParse()优于Int32.Parse()优于Convert.ToInt32()。

所以个人建议:

.NET1.1下用Int32.Parse();

.NET2.0用Int32.TryParse()。

那么为什么会这样呢?

其实这些数据不是偶然的,因为:

Convert.ToInt32会把最终的解析工作代理给Int32.Parse;

Int32.Parse会把最终的解析工作代理给Number.ParseInt32;

Int32.TryParse会把最终的解析工作代理给Number.TryParseInt32。

至于其他进制的转换请参考MSDN。

重载参数即可!

我们可以把12 

33 

456 

12342 

拼起来就是一个字符,因为很多时候我们觉得处理只有几个组的时候用数组很麻烦所以我们用“|”或者“,”等等把他们拼起来在需要的时候用Split打散即可。

下面列举一些用法,不做性能分析了。

方法一:

static 

args) 

aa 

1234,234523,4324,324"

string[] 

cc 

aa.Split(new 

char[] 

...{ 

'

'

});

foreach 

(string 

bb 

in 

cc) 

Console.Write(bb 

方法二:

string 

str 

aa.Split('

str)

方法三:

1,2,3,4,5,6,7,8,9"

"

Split(a, 

b);

c)

public 

Split(string 

input, 

pattern)

arr 

System.Text.RegularExpressions.Regex.Split(input, 

pattern);

return 

arr;

实现把文章按空格打散:

Main 

() 

a="

While 

laughter 

is 

very 

aerobic 

activity 

engages 

every 

single 

organ 

system"

b="

[]c=TestDoWhile.Split(a,b);

foreach(string 

c) 

Console.Write(bb+"

input,string 

System.Text.RegularExpressions.Regex.Split(input,pattern);

@"

没有什么区别

不过@是忽略转义字符的!

比如"

abc\n"

输出abc并加个换行

但是@"

输出abc\n无换行!

取消转义

比如你想将C:

\windows\system这个字符串赋值给str

一般情况下要:

C:

\\windows\\system"

因为在C#中,\\才会被转义成一个\

又例如\n就是换行符

而加入@,就可以这样:

\windows\system"

这又是一个经常遇到的问题。

保留2位有效小数(和保留N位一样的参数不同而已):

 

Main() 

Double 

12.345678;

Console.Write(Math.Round(a,2));

四舍五入:

//是要四舍五入的数

Console.Write((a*10000+0.5)/10000);

1.设置web.config文件。

system.web>

...... 

globalization 

requestEncoding="

gb2312"

responseEncoding="

culture="

zh-CN"

fileEncoding="

/>

/system.web>

2.传递中文之前,将要传递的中文参数进行编码,在接收时再进行解码。

>

进行传递 

Name 

中文参数"

Response.Redirect("

B.aspx?

Name="

+Server.UrlEncode(Name));

进行接收 

Request.QueryString["

Name"

];

Response.Write(Server.UrlDecode(Name));

3.如果是从.HTML文件向.Aspx文件进行传递中文参数的话(即不从后台用Redirect()方法进行Url转换)。

一样要将传递的中文参数进行编码,在接收时再进行解码。

script 

language="

JavaScript"

function 

GoUrl() 

var 

location.href 

+escape(Name);

/script>

body 

onclick="

GoUrl()"

一般来说。

设置web.config文件就可以了。

但是如果你用JavaScript调用webservice方法的话(往webservice里面传递中文参数)。

设置web.config文件好象无效。

123456789"

int.Parse(a).ToString("

##-###-####"

Console.Write(a);

a.Insert(5, 

-"

).Insert(2, 

System.Text.RegularExpressions;

Main()

Regex 

reg 

new 

Regex(@"

^(d{2})(d{3})(d{4})$"

reg.Replace(a, 

$1-$2-$3"

SwapChar(ref 

s, 

3, 

6);

Console.Write(s.ToString());

i1, 

i2)

char 

temp 

s[i1];

temp1 

s[i2];

s.Remove(i1, 

1).Insert(i1, 

temp1.ToString());

s.Remove(i2, 

1).Insert(i2, 

temp.ToString());

//SwapChar(s, 

Console.Write(SwapChar(s, 

6).ToString());

SwapChar(string 

p1, 

p2)

if 

((p1 

== 

p2) 

|| 

0) 

(p2 

0))) 

s;

s.Length) 

s.Length)) 

vChars 

s.ToCharArray();

vChars[p1] 

(char)(vChars[p2] 

(vChars[p2] 

vChars[p1]) 

&

0);

string(vChars);

str, 

a, 

b)

newStr 

str.ToCharArray();

newStr[a] 

str[b];

newStr[b] 

str[a];

string(newStr);

方法四:

(p1 

p1;

p1 

p2;

p2 

p;

Regex.Replace(s, 

^(.{"

})(.)(.{"

1) 

})(.)(.*)$"

 

$1$4$3$2$5"

8.“%10”的妙用

...{

Random 

Random();

Console.WriteLine(r.Next() 

10);

//1-9

Consol

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1