String与StringBuilder - 字符串的轻重量级

简介: 有人经常问String和StringBuilder有什么区别,啥时候用什么呢?其实,如果是简单的字符串应用的话,一般都用string。 下面我们来举个例子:string strEmail = "";strEmail += "" + xxxxx + "";strEmail += "" + yyyyy + "";strEmail += "" + xxxxx+ "";strEmail += "" + yyyyy + "";以上属于比较丑陋的代码了,像这种情况,至少,我们应该利用一下C#中的字符串换行符号@和string.Format吧。
有人经常问String和StringBuilder有什么区别,啥时候用什么呢?

其实,如果是简单的字符串应用的话,一般都用string。
 
下面我们来举个例子:
string  strEmail  =   "" ;

strEmail 
+=   " <tr><td> "   +  xxxxx  +   " </td> " ;
strEmail 
+=   " <td> "   +  yyyyy  +   " </td> " ;
strEmail 
+=   " <td> "   +  xxxxx +   " </td> " ;
strEmail 
+=   " <td> "   +  yyyyy  +   " </td></tr> " ;

以上属于比较丑陋的代码了,像这种情况,至少,我们应该利用一下C#中的 字符串换行符号@和string.Format吧。
可以这样写:
strEmail  =   "" ;
strEmail 
+=   string .Format( @"
<tr>
<td>{0}</td>
<td>{1}</td>
<td>{2}</td>
<td>{3}</td>
</tr>
" ,
xxxxx,
yyyyy,
xxxxx,
yyyyy);

但是以上写法还不是最好的,这个时候我们想到了StringBuilder。
因为在比较重量级的字符串拼接的场景下,最好使用StringBuilder。
新的写法如下:
var sbEmail  =   new  StringBuilder( @" <table border=""1"">
<tr>
<td>Header A</td>
<td>Header B</td>
<td>Header C</td>
<td>Header D</td>
</tr>
" );

// items只是一个特定的ArrayList,用于循环添加表格的行,可以不必理会
foreach  (var item  in  items)
{
  sbEmail.AppendFormat(
@"
  <tr>
  <td>{0}</td>
  <td>{1}</td>
  <td>{2}</td>
  <td>{3}</td>
  </tr>
" ,
  xxxxx,
  yyyyy,
  xxxxx
  yyyyy);
}

sbEmail.AppendLine(
" </table> " );

我们需要注意的是: AppendFormat和AppendLine

目录
相关文章
|
5天前
|
Java 索引
String字符串常用函数以及示例 JAVA基础
String字符串常用函数以及示例 JAVA基础
string(字符串)
在 Lua 中,字符串可以用双引号或单引号定义,如 `string1 = &quot;this is string1&quot;` 和 `string2 = &#39;this is string2&#39;`。多行字符串可由两个方括号包围,例如 `html` 变量所示,它包含了一个 HTML 片段。Lua 会尝试将数字字符串转换为数值进行算术运算,但混合字符串和数字可能导致错误,如 `&quot;error&quot; + 1`。
|
4天前
|
存储 Java
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
Java基础复习(DayThree):字符串基础与StringBuffer、StringBuilder源码研究
|
6天前
|
安全 Java 编译器
Java中String、StringBuilder和StringBuffer的区别
Java中String、StringBuilder和StringBuffer的区别
11 1
|
6天前
|
安全
String、StringBuuffer、StringBuilder三者的区别
String、StringBuuffer、StringBuilder三者的区别
|
6天前
|
缓存 安全 Java
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
【Java基础】String、StringBuffer和StringBuilder三种字符串对比
9 0
|
6天前
StringBuilder和StringBuffer区别是什么?
StringBuilder和StringBuffer区别是什么?
|
6天前
|
Java API 索引
Java基础&API(2) String、StringBuilder详解
Java基础&API(2) String、StringBuilder详解
|
6天前
|
安全 Java API
Java 的 String StringBuilder StringBuffer(下)
Java 的 String StringBuilder StringBuffer
14 0
|
6天前
|
存储 编解码 算法
Java 的 String StringBuilder StringBuffer(上)
Java 的 String StringBuilder StringBuffer
30 0