webform1.aspx<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="work082.WebForm1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>String类和StringBuilder类的区别</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html> webform1.aspx.csusing System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace work082
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//如果堆中存在字符串abd,则a=adb,否则a=null
string a = string.IsInterned("abd");
string b = new System.Text.StringBuilder().Append("as").Append("df").ToString();
if (string.IsNullOrEmpty(a))
{
Response.Write(a + "不在拘留池中<br>");
}
else
{
Response.Write(a + "在拘留池中<br>");
}
if (string.IsNullOrEmpty(b))
{
Response.Write(b + "不在拘留池中<br>");
}
else
{
Response.Write(b + "在拘留池中");
}
Response.Write("<hr>");
int count = 9000;
TimeSpan ts1 = StringConcat(count);
TimeSpan ts2 = StringBuilderConcat(count);
Response.Write(string.Format("使用string来连接{0}次耗时{1}毫秒。<br>",count.ToString(),ts1.TotalMilliseconds));
Response.Write(string.Format("使用StringBuilder来连接{0}次耗时{1}毫秒。<br>", count.ToString(), ts2.TotalMilliseconds));
}
/// <summary>
/// 用String对象来连接字符串
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
public static TimeSpan StringConcat(int count)
{
DateTime start = DateTime.Now;
string text = string.Empty;
for (int i = 0; i < count; i++)
{
text = text + "0" + i;
}
DateTime end = DateTime.Now;
return end - start;
}
/// <summary>
/// 用StringBuilder对象连接字符串
/// </summary>
/// <param name="count"></param>
/// <returns></returns>
public static TimeSpan StringBuilderConcat(int count)
{
DateTime start = DateTime.Now;
System.Text.StringBuilder text = new System.Text.StringBuilder();
for (int i = 0; i < count; i++)
{
text.Append("0" + i);
}
DateTime end = DateTime.Now;
return end - start;
}
}
}
|