【C#】如何有效的操作字符串
2011-04-19 02:05
260 查看
字符串在网络编程中有着举足轻重的作用,它用来提取数据包中有用的字段,同时也可以用来构造所要发送的数据报,经过积累,我也找到了其中的一些窍门,跟大家分享。以下代码均已C#为例。
注意:为什么username是tempsplit[3]开始的呢?不清楚的话,可以通过以下代码进行验证。
注意:我在使用这个方法的时候,开始把第二个参数当成结束的位置,在调试的时候遇到很多困难。借此引起注意,不要犯这种低级的错误,在对一个方法不是完全了解的时候,可以先阅读MSDN和baidu、google。
比如我在构造一个由HTTP发送的认证字符串时,我们可以用Append方法来构造所要发送的数据报。
在对字符串操作的时候,还有一把锐利的“瑞士军刀”—正则表达式。等我学习了以后再来分享学习的成果。
1、分割字符串,所用方法Split。
原话是这样讲的,分割字符串是指将已有的字符串按照一定的规则进行分割,以获取新形式的子字符串。例子:字符串“ftp://admin:11111@192.168.100.6”是登陆ftp服务器的标准格式。其中admin是用户名,1111是密码,192.168.100.6是IP地址。请编写一段代码获取这个字符串中的用户名、密码、服务器地址。 string str1 = @"ftp://admin:1111@192.168.100.6"; char[] sp = {'/',':','@' }; string[] tempsplit = str1.Split(sp); string username = tempsplit[3]; string password = tempsplit[4]; string IP = tempsplit[5];
注意:为什么username是tempsplit[3]开始的呢?不清楚的话,可以通过以下代码进行验证。
string str1 = @"ftp://admin:1111@192.168.100.6"; char[] sp = {'/',':','@' }; string[] tempsplit = str1.Split(sp); foreach (string s in tempsplit) { Console.WriteLine(s); }
2、提取字符串,所用方法Substring。
还是上面的那个例子,这次我用的是检索字符串的方法。MSDN上说,string表示文本,一系列Unicode字符,char表示一个Unicode字符。string str1 = @"ftp://admin:1111@192.168.100.6"; int index1 = str1.IndexOf("ftp://") + 6; int index2 = str1.LastIndexOf(":") + 1; int index3 = str1.IndexOf("@") + 1; int index4 = str1.Length; int usernamelength = index2 - index1 - 1; int passwordlength = index3 - index2 - 1; int iplength = index4 - index3; string username = str1.Substring(index1, usernamelength); string password = str1.Substring(index2, passwordlength); string IP = str1.Substring(index3, iplength); Console.WriteLine(username); Console.WriteLine(password); Console.WriteLine(IP);
注意:我在使用这个方法的时候,开始把第二个参数当成结束的位置,在调试的时候遇到很多困难。借此引起注意,不要犯这种低级的错误,在对一个方法不是完全了解的时候,可以先阅读MSDN和baidu、google。
3、构造(合并)字符串,所用方法Append。
这里需要用到的是StringBuild类,StringBuild类是存储可变字符串值的类。合并字符串时可以不用额外声明一个字符串变量来存储结果。比如我在构造一个由HTTP发送的认证字符串时,我们可以用Append方法来构造所要发送的数据报。
StringBuilder sb = new StringBuilder(); string username = "%d2%bb%c2%b7%bf%f1%ec%ad"; string password = "e10adc3949ba59abbe56e057f20f883e"; string str1 = "formhash=3e58f988&loginfield=username&username="; string str2 = "&password="; string str3 = "&questionid=0&answer=&cookietime=2592000"; sb.Append(str1); sb.Append(username); sb.Append(str2); sb.Append(password); sb.Append(str3); Console.WriteLine(sb.ToString()); Console.ReadKey();
在对字符串操作的时候,还有一把锐利的“瑞士军刀”—正则表达式。等我学习了以后再来分享学习的成果。
相关文章推荐
- C#中如何正确的操作字符串?
- C#优化字符串操作(4)--保留2位有效小数及四舍五入
- C# indexof如何截取两个特定字符之间的字符串
- 编写C#代码时,一个字符串太长如何换行
- C#如何有效讲授学习
- 在C#.net中如何操作XML
- C#操作字符串方法总结<转>
- HTTP协议及其POST与GET操作差异 & C#中如何使用POST、GET等
- C# 格式化字符串,日期,字符串操作汇总
- C#中一些字符串操作的常用用法
- 如何对字符串本身进行操作来实现逆向输出
- C# winform datagridview中如何实现鼠标右键点击一行数据出现一个带有删除的菜单,并能执行删除操作?
- 非常实用的C#字符串操作处理类StringHelper.cs
- C#主窗体和子窗体之间如何相互操作对方的控件
- 在shell中如何判断字符串是否为有效的IP地址
- C#中一些字符串操作的常用用法
- C# 字符串 相关操作
- C# 操作 Excel 如何设置格式
- C#基础学习之【4】字符串的操作
- C#中的如何:连接和分割字符串