最近写项目 遇到的一个 问题~需要拼接 字符串~ 量不是很大(汗...) 都类似是 一: url = "..." + id + "..." + name;这类挺短的,后来改成了 二: url = string.Format("...{0}...{1}",id,name);这种小拼接的 字符串 大概需要 10多个~ 所以 就联想到的 效率问题~
我想问 到底是 直接 一 类型的~ 还是 二 类型的 哪个效率能好点呢~ 基本上 用不到StringBuilding 求真相! 吃饭啦 吃完饭回来 哈!
我想问 到底是 直接 一 类型的~ 还是 二 类型的 哪个效率能好点呢~ 基本上 用不到StringBuilding 求真相! 吃饭啦 吃完饭回来 哈!
解决方案 »
- 如何将一个路径下的东西用treeview显示 并可以实时更新!急,急,大虾帮忙
- 紧急求问:WinForm界面的拖动
- 关于三层项目中,日志写入与try catch的问题
- 如何正確理解:C#/C++/C/C# builder/VC
- 明天我们杭州 大学生抗日游行,在文三路,
- C#中有无格式化时间的函数?就象VB中的Format(Time,'yyyy-mm-dd')?
- 一个小问题,从DATAGRID取字段字段长度的问题
- 非常简单问题,解决马上给分!!
- asp:HyperLink 控件如何去掉显示的文字下面的下划线?
- 怎样在程序运行时,在textbox中输入空格字符
- 各位高手想请教关于windowsform中timer控件使用的问题?我想让timer来控制三个以上button循环改变颜色,希望帮忙?初学希望给给代码,非常感谢
- winform 页面转换太慢
如果您串联的字符串数量不那么巨大(例如,在循环中),那么这些代码的性能成本可能不会很高。上述情况同样适用于 String.Concat 和 String.Format 方法。
Concatenate Multiple Strings
这些代码指的是通过+的方式进行字符串连接.比较String.Format和+这样的字符串连接方式,本身意义不大.
对于 url = "Default.aspx?id"+id; 或 url = string.Format("Default.aspx?id={0}",id);
这样的 字符串 没必要 用 StringBuilding 吧~ 这样反而会对效率造成影响我一般是在 很大量的 字符串拼接的时候 使用 StringBuilding ~
stringbuilder 效率是最高不过
10多个没必要考虑效率问题吧?
直接用第二种……
这样的话 是不是 就没必要 非得 区分 普通拼接 和 string.Format 格式化 的效率对比了?可是 我在GOOGLE 上搜到了一个 帖子不是 这样说的http://topic.csdn.net/t/20050606/13/4062436.html所以 自己比较郁闷~
是啊 我就是在简单字符串拼接的时候 全部改成了 string.Format 所以就像到了 是否会影响效率
不是说 10多个一块拼接是 这样的~~
string url1 = "...";
string url2 = "...";
string url3 = "...";
string url4 = "...";
...
string url10 = "...";
stirng十多个string变量 每个string变量 几乎都是 拼接字符串组成的 所以就会 想到效率的问题
1,2方法是等效的,效率上没差别。这里用StringBuilder反而开销更大。多个字符串相加,你逻辑就是如此,是无法避免的,StringBuilder只是缓存字符数组来达到避免创建过多的字符串对象,但在你这里,拼接并不会创造很多的string。而是一个,因为那叫做初始化。
事实上,我更倾向于第一种写法,第二种写法貌似直观,真要是拼接的多了,比如{27},所表示的变量是哪一个,你不要数一阵子?
他不是只用来处理大字符串的,他自己会伸缩内存占用,自己会扩展,不存在你字符短就效率差的问题
这个不一定吧~ 不是每种 字符串 拼接都得用 StringBuilding 的吧
return new Formatter().format(format, args).toString(); public Formatter() {
init(new StringBuilder(), Locale.getDefault());
}
private void init(Appendable a, Locale l) {
this.a = a;
this.l = l;
setZero();
}
而StringBuilder extends AbstractStringBuilder
AbstractStringBuilderimplements Appendable
所以二都的性能应该是相当的