【第22期】观点:IT 行业加班,到底有没有价值?

字符串拼接新技能

原创 2015年11月20日 09:24:38

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

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了,这是新技能。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

编写高质量代码——笔记

摘抄《编写高质量代码——改善JAVA程序的151个建议》,记录一下实用的一些知识点。 1、不要在常量和变量中出现易混淆的字母 包名全小写,类名首字母全大写,常量全部大写并用下划线分割,变量采用驼峰明明...

get新技能——Sublime Text

[size=medium] 真心推荐Sublime Text这个小巧又功能强大的编辑器,非常好用,。顺便记录一下笔记。。哈哈。。 以前用这个软件的时候并没有安装插件,觉得界面还不错之外,就是可以保存意外关闭的文件【too young too simple。。】 在项目组...
  • hmeng
  • hmeng
  • 2015-08-03 23:51
  • 116

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

python 2进制字符串拼接查找

#! /usr/bin/python2 # coding=utf-8global hex27, hex28, db_27, db_28 hex27 =0 hex28=0 db_27 = 18.5 ...

暴雪:战士新技能战旗以及坦克的PVP问题

战士新技能:战旗   出于一些原因,我们把这个技能做成了战旗。我们认为如果战士能在特定的地点放置挫志和嘲讽效果,这些效果将会变得更有用。举例来说,想象一下一个战士(不只是坦克)使用嘲讽战旗将即将出现的add引向坦克的当前位置。现在,颅骨战旗不一定非得是战旗,因为战士大概希望大多数时间都能从这个...
  • ucf5
  • ucf5
  • 2012-03-14 17:38
  • 317

Mysql之字段字符串拼接

需求: mysql的字符串拼接 实现: concat(str1,str2,str3) concat_ws(separator,str1,str2,str3) 实现中只需要注意null的问题,说明如下: con
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)