zoukankan      html  css  js  c++  java
  • String与StringBuilder 字符串的轻重量级

    有人经常问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

  • 相关阅读:
    查看进程的pid和ppid
    多进程《二》开启进程的两种方式
    多进程《一》进程理论
    并发编程《二》操作系统介绍2
    并发编程《一》操作系统介绍1
    Google浏览器历史版和下载地址
    python爬取淘宝排名
    字符编码
    hashlib
    离散数学
  • 原文地址:https://www.cnblogs.com/davidgu/p/1540634.html
Copyright © 2011-2022 走看看