stringbuilder100次拼装字符串所消耗的时间 写两个方法分别计算string和stringbuilder100次拼装字符串所消耗的时间刚学C#不是很会,请教下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 *************************************************** DateTime timeStart = DateTime.Now; String s = "Chinese"; for (int i = 0; i < 100; i++) { s += "People"; } DateTime timeEnd = DateTime.Now; TimeSpan sp = timeEnd - timeStart; Console.Write("拼装字符串所用的时间为:{0}",sp);******************************************************这样写可以吗? HOHO,临时写了一个只是大概结果。其中未准确的度量循环的开销:输出的结果是:633564039022343750633564039111875000633564039112031250D12:89531250D23:156250D12/D23:573输出的值分别是:开始时间(Ticks)第一项测试结束时间(第二项测试开始时间)(Ticks)第二项测试结束时间(Ticks)D12:第一次测试的总时长D23:第二次测试的总时长D12/D23:第一次测试时间比上(除以)第二次测试时间我之所以使用Ticks时间是使用普通的时间格式无法表示出这么精确的时间差。对了上面的测试结果是我进行了10000次拼装的结果。100次根据看不出区别。 class Program { public static string A; public static StringBuilder BA; public static void Test1(int K) { string ret = ""; for (int i = 0; i < K; i++) { ret += A; } //ret是拼装结果 } public static void Test2(int K) { string ret = ""; for (int i = 0; i < K; i++) { BA.Append(A); } ret = BA.ToString(); //ret是拼装结果 } static void Main(string[] args) { //A为100个字母K; A = new String('K', 100); BA = new StringBuilder(); int K = 10000; //输出当前时间 long l1, l2, l3; l1 = DateTime.Now.Ticks; Console.WriteLine(l1.ToString()); Test1(K); l2 = DateTime.Now.Ticks; Console.WriteLine(l2.ToString()); Test2(K); l3 = DateTime.Now.Ticks; Console.WriteLine(l3.ToString()); long d12, d23; d12 = l2 - l1; d23 = l3 - l2; Console.WriteLine("D12:{0}", d12); Console.WriteLine("D23:{0}", d23); Console.WriteLine("D12/D23:{0}", d12 / (float)d23); Console.ReadLine(); }} 那我改成SrtingBuilder的,嘿嘿 DateTime timeStart = DateTime.Now; StringBuilder sb = new StringBuilder(); for (int i = 0; i < 100; i++) { sb.Append("People"); } DateTime timeEnd = DateTime.Now; TimeSpan sp = timeEnd - timeStart; Console.Write("拼装字符串所用的时间为:{0}",sp); 还有个小问题:先判断输入字符串的Length>=9,再判断头三个字母==“HBR”,后三个字母==”exe”(注意大小写),满足条件就 输出“符合”,不满足就输出“匹配失败”怎么弄啊 public bool TestResult(string s){ return s.Length>=9 && s.SubString(0,3).ToUpper()=="HBR" && s.SubString(s.Length-3,3).ToUpper()=="EXE";}在任何你要测试的地方,假设你要测试的字符串名称为:strResult;if(TestResult(strResult)){ Console.WriteLine("符合");}else{ Console.WriteLine("不符合");} 怎么用Hashtable写的查询? 在DataGrid中动态生成conBox 和CheckBox后获得事件和值的问题 excel问题 请教一个C#类的问题? 在线等!好郁闷的问题! 有谁知道上海的 中湾软件 怎么样啊? com interop 统计文档里词的总数(分好词的) c#下一个项目中两个form之间怎么样联系的? 有没有更好的访问Access数据库的方法?请帮忙--在线等待 文本流问题??? 问一个关于类继承的问题?
DateTime timeStart = DateTime.Now;
String s = "Chinese";
for (int i = 0; i < 100; i++)
{
s += "People";
}
DateTime timeEnd = DateTime.Now;
TimeSpan sp = timeEnd - timeStart;
Console.Write("拼装字符串所用的时间为:{0}",sp);
******************************************************
这样写可以吗?
输出的结果是:633564039022343750
633564039111875000
633564039112031250
D12:89531250
D23:156250
D12/D23:573
输出的值分别是:
开始时间(Ticks)
第一项测试结束时间(第二项测试开始时间)(Ticks)
第二项测试结束时间(Ticks)
D12:第一次测试的总时长
D23:第二次测试的总时长
D12/D23:第一次测试时间比上(除以)第二次测试时间我之所以使用Ticks时间是使用普通的时间格式无法表示出这么精确的时间差。对了上面的测试结果是我进行了10000次拼装的结果。100次根据看不出区别。
class Program
{ public static string A;
public static StringBuilder BA; public static void Test1(int K)
{
string ret = "";
for (int i = 0; i < K; i++)
{
ret += A;
}
//ret是拼装结果
} public static void Test2(int K)
{
string ret = "";
for (int i = 0; i < K; i++)
{
BA.Append(A);
}
ret = BA.ToString();
//ret是拼装结果
}
static void Main(string[] args)
{ //A为100个字母K;
A = new String('K', 100);
BA = new StringBuilder(); int K = 10000; //输出当前时间
long l1, l2, l3;
l1 = DateTime.Now.Ticks;
Console.WriteLine(l1.ToString());
Test1(K); l2 = DateTime.Now.Ticks;
Console.WriteLine(l2.ToString()); Test2(K);
l3 = DateTime.Now.Ticks;
Console.WriteLine(l3.ToString()); long d12, d23;
d12 = l2 - l1;
d23 = l3 - l2; Console.WriteLine("D12:{0}", d12);
Console.WriteLine("D23:{0}", d23); Console.WriteLine("D12/D23:{0}", d12 / (float)d23);
Console.ReadLine();
}
}
DateTime timeStart = DateTime.Now;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 100; i++)
{
sb.Append("People");
}
DateTime timeEnd = DateTime.Now;
TimeSpan sp = timeEnd - timeStart;
Console.Write("拼装字符串所用的时间为:{0}",sp);
先判断输入字符串的Length>=9,再判断头三个字母==“HBR”,后三个字母==”exe”
(注意大小写),满足条件就 输出“符合”,不满足就输出“匹配失败”怎么弄啊
public bool TestResult(string s)
{
return s.Length>=9 && s.SubString(0,3).ToUpper()=="HBR" && s.SubString(s.Length-3,3).ToUpper()=="EXE";
}
在任何你要测试的地方,假设你要测试的字符串名称为:strResult;if(TestResult(strResult))
{
Console.WriteLine("符合");
}
else
{
Console.WriteLine("不符合");
}