字符串拼接新技能

关于这个问题先来看一段代码:

String strPath = sImagePath +  "\\"  + sIP.ToString() +  "\\高清图\\"  + Convert.ToString(dt.Year) +
                    Convert.ToString(dt.Month) +
                   Convert.ToString(dt.Day);
             Directory.CreateDirectory(strPath);
             strSpeFile = strPath +  "\\"  + strTime +  "("  + sPlate.ToString() +  ").jpg" ;
  
             //将抓拍图片存储到队列中
             queueImg.Enqueue(strSpeFile);
             log.Error( "车牌识别图片路径:"  + strSpeFile);
  
             strPath = sImagePath +  "\\"  + sIP.ToString() +  "\\车牌图\\"  + Convert.ToString(dt.Year) +
                   Convert.ToString(dt.Month) +
                   Convert.ToString(dt.Day);
             Directory.CreateDirectory(strPath);
             strPlateFile = strPath +  "\\"  + strTime +  "("  + sPlate.ToString() +  ").jpg" ;
  
             strPath = sImagePath +  "\\"  + sIP.ToString() +  "\\二值化图\\"  + Convert.ToString(dt.Year) +
                    Convert.ToString(dt.Month) +
                   Convert.ToString(dt.Day);
             Directory.CreateDirectory(strPath);
             strTwoFile = strPath +  "\\"  + strTime +  "("  + sPlate.ToString() +  ").bin" ;

使用“+”来拼接字符串,应该是最常见的做法,很直观,但也是最低级的做法,说到优化,大家很容易就想到了  string.Format、StringBuilder等方法或类来处理。

比如用  string.Format来处理一段代码,如下

String strPath = string .Format( "{0}\\{1}\\高清图\\{2}{3}{4}" ,sImagePath,sIP.ToString(), Convert.ToString(dt.Year),
  Convert.ToString(dt.Month),Convert.ToString(dt.Day));

看起来不错,节俭多了,性能上来说也有所提高。然后有个人突然告诉你,你的参数顺序写错了,然后你又急急忙忙一个一个的去对。。

之后你又换了个方法,用StringBuilder,代码如下

StringBuilder str=  new  StringBuilder();
             str.Append(sImagePath);
             str.Append( "\\" );
             str.Append(sIP.ToString());
             str.Append( "\\高清图\\" );
             str.Append(Convert.ToString(dt.Year));
             str.Append(Convert.ToString(dt.Month));
             str.Append(Convert.ToString(dt.Day));

这下总不会多或者少了吧,性能也一样提高了,正当你要忘记了的时候,突然有天你有看到了这段代码,看了好半天才终于知道自己要拼的什么字符串,也是醉了

你看看下面这段代码

String strPath = $ "{sImagePath}\\{sIP.ToString()}\\高清图\\{Convert.ToString(dt.Year)}{Convert.ToString(dt.Month)}{Convert.ToString(dt.Day)}" ;
  
             Directory.CreateDirectory(strPath);
             strSpeFile = $ "{strPath}\\{strTime}({sPlate.ToString()}).jpg" ;
  
             //将抓拍图片存储到队列中
             queueImg.Enqueue(strSpeFile);
             log.Error($ "车牌识别图片路径:{strSpeFile}" );
  
             strPath = $ "{sImagePath}\\{sIP.ToString()}\\车牌图\\{Convert.ToString(dt.Year)}{Convert.ToString(dt.Month)}{Convert.ToString(dt.Day)}" ;
             Directory.CreateDirectory(strPath);
             strPlateFile = $ "{strPath}\\{strTime}({sPlate.ToString()}).jpg" ;
  
             strPath = $ "{sImagePath}\\{sIP.ToString()}\\二值化图\\{Convert.ToString(dt.Year)}{Convert.ToString(dt.Month)}{Convert.ToString(dt.Day)}" ;
             Directory.CreateDirectory(strPath);
             strTwoFile = $ "{strPath}\\{strTime}({sPlate.ToString()}).bin" ;

 跟前面的都比较一下,是不是也能很快就看出来,变量也不用担心写错地方,性能怎么样?也是杠杠的。如果你还没有见过这种写法,那说明你out了,这是新技能。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值