现在的位置: 首页 > 综合 > 正文

关于字符串的使用

2011年09月23日 ⁄ 综合 ⁄ 共 1176字 ⁄ 字号 评论关闭

字符串,最初在C中是指一个char数组。在.NET和Java,语言本身内置String的类型,String一个不可变得类型,每次修改,都返回新的实例。以下我讨论关于String类型的一些常见用法。

1、判断是否空字符串

//判断是否为null,或者长度是否为0
if (str == null || str.Length == 0)
{
    
//do something 
}

//判断是否为null,并且长度是否为0
if (str != null && str.Length != 0)
{
    
//do something 
}

   String trimedStr;
//判断是否为null,并且Trim之后长度是否为0
if (str != null && (trimedStr = str.trim()).Length != 0)
{
    
//use trimedStr
    
//do something 
}

//判断是否为null,并且trim之后长度是否为0
if (str != null && str.Trim().Length != 0)
{
    String trimedStr 
= str.Trim();
    
//do something 
}

2、优化长字符串处理
 String一个不可变得类型,每次修改,都返回新的实例。在C#中使用StringBuilder,在Java中使用StringBuffer。
 例如:

StringBuilder strBuilder = new StringBuilder();
strBuilder.Append(
"aaa");
strBuilder.Append(
"bbb");
String str 
= strBuilder.ToString();

3、重载ToString方法
 当你一个大对象,包括很对子对象,需要每个子ToString然后相加,产生一个大字符串,此时你需要重载ToString()方法,但是这样的效率比较低。一种可替代的方式为,你提供一个额外的Output方法。例如:

public void Output(StringBuilder strBuilder)
{
   
//do something 
}

 
public override String ToString()
{
   StringBuilder strBuilder 
= new StringBuilder();
   Output(strBuilder);
   
return strBuilder.ToString();
}

总结
 其实这些都是很简单的技巧,理应该每个人都掌握,但是以前参加代码评审时,发现很多人还是犯错了,有个项目某个人使用了一种错误的方式,然后在整个项目组内推广,结果是整个项目组都使用错误了。

每次代码评审都会发现很多可笑的事情 :-)

抱歉!评论已关闭.