zoukankan      html  css  js  c++  java
  • 关于字符串的使用

    字符串,最初在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();
    }


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

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

  • 相关阅读:
    Confluence 6 创建你的个人空间
    Win10正式专业版激活方法
    还在手工写接口测试文档,已经out了
    MYSQL支持的数据类型-数值类型
    mysql
    转 聊聊连接池和线程
    当压测数据压不上去时可能是哪些原因造成的
    IDEA自动导包(全局设置)
    微服务化后缓存怎么做
    win10家庭版升级到专业版密钥
  • 原文地址:https://www.cnblogs.com/jobs/p/28967.html
Copyright © 2011-2022 走看看