C#字符串处理积累(一)
来源:互联网 发布:js无限循环数组输出 编辑:程序博客网 时间:2024/06/06 05:09
1.把string类型转换为int类型有三种方法:
Convert.ToInt32(myString), Int32.Parse(myString);Int32.TryParse(myString, out myint);
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
......{
class Program
......{
static void Main(string[] args)
......{
string myString = "1234";
int myint = 0;
myint = Convert.ToInt32(myString);
Console.Write(myint+" ");
myint = Int32.Parse(myString);
Console.Write(myint+" ");
Int32.TryParse(myString, out myint);
Console.Write(myint+" ");
}
}
}
//string myString = "1234";
string myString = null;
int myint = 0;
myint = Convert.ToInt32(myString);
Console.Write(myint+"/r/n");
myint = Int32.Parse(myString);
Console.Write(myint+"/r/n");
Int32.TryParse(myString, out myint);
Console.Write(myint+"/r/n");
这次字符串是null,那么运行结果会怎样呢?Convert.ToInt32()在null时不抛异常而是返回0;
Int32.Parse()要抛异常;
Int32.TryParse()不抛异常,会返回true或false来说明解析是否成功,如果解析错误,调用方将会得到0值。
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。
2.@"abc"和"abc"区别在那里
@"abc"和"abc"没有什么区别
不过@是忽略转义字符的!
比如 "abc/n" 输出 abc 并加个换行
但是 @"abc/n" 输出 abc/n 无换行!
取消转义
比如你想将 C:/windows/system 这个字符串赋值给 str
一般情况下要:
string str = "C://windows//system";
因为在C#中,// 才会被转义成一个 /
又例如/n就是换行符
而加入@,就可以这样:
string str = @"C:/windows/system";
3.把123456789转换为12-345-6789的3种方法
方法一:
a = int.Parse(a).ToString("##-###-####");
Console.Write(a);
方法二:
a = a.Insert(5, "-").Insert(2, "-");
Console.Write(a);
方法三:
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
...{
class Program
...{
static void Main()
...{
string a = "123456789";
Regex reg = new Regex(@"^(d{2})(d{3})(d{4})$");
a = reg.Replace(a, "$1-$2-$3");
Console.Write(a);
}
}
}
4.输出21个AAAAAAAAAAAAAAAAAAAAA的巧妙做法
new构造器的理解
如果要你创建一个由21个"A"字符构成的字符串,你会怎么做?
string str = "AAAAAAAAAAAAAAAAAAAAA";//老实型
string str = new string('A', 21);//简单聪明
5. 判断空字符串的三种方法的比较:
string a="";
1.if(a=="")
2.if(a==String.Empty)
3.if(a.Length==0)
其中就其执行速度来说又快到慢是:3,2,1.
1.if(a=="") // ""需要实例化一个String对象,最差
2.if(a==String.Empty) // String.Empty是常量,不需要实例化
3.if(a.Length==0) // a.Length虽然最快,但是语意不如第2种清晰
另,String.IsNullOrEmpty(value)判断的是该字符串是非为空,或者为空字符串.
结论:推荐使用2.if(a==String.Empty),安全,稳定,语意清晰
- C#字符串处理积累(一)
- javascript处理字符串函数积累
- 字符串处理-研发积累细节
- C# .Net 学习积累 《一》
- python知识积累(三)字符串处理
- 字符处理系列一:C#字符串的使用
- C# Windows form 学习积累《一》
- C#中的字符串处理
- C# 处理字符串
- C#字符串处理类
- C#字符串处理类
- C#字符串处理类
- C#字符串处理类
- C#字符串处理类
- C#字符串处理(@)
- C#字符串处理
- C#字符串处理
- C#字符串处理
- Struts+Spring+Hibernate真正入门级实例(四)
- 魔兽世界用迅闪更新的问题
- 雅虎公司C#笔试题
- Struts+Spring+Hibernate真正入门级实例(五)
- 用java调用oracle存储过程总结
- C#字符串处理积累(一)
- Oracle 10G -- 增强的CONNECT BY子句
- Struts+Spring+Hibernate真正入门级实例(六)
- C#指定窗口显示位置
- [转]MODBUS通信协议详解〔http://suncilang.21ic.org/user1/245/archives/2007/37664.html〕
- 两个listbox控件之间的(Mondify By LiFuyun)秘密-----------------个人学习心得
- 努力
- C#开发和使用中的23个技巧
- 类似2个用户共有的Session变量可以随 用户/私聊/棋局