C#使用String和StringBuilder運(yùn)行速度測(cè)試及各自常用方法簡(jiǎn)介
對(duì)Sting和StirngBuilder進(jìn)行速度測(cè)試
使用Stopwatch 秒表計(jì)時(shí)器類(lèi)(注意引用命名空間System.Diagnostics;)中的方法,Start()開(kāi)始計(jì)時(shí),Stop()停止計(jì)時(shí),屬性Elapsed:返回開(kāi)始到結(jié)束的時(shí)間間隔
然后對(duì)Sting類(lèi)型的變量和Stringbuilder的對(duì)象進(jìn)行相同的操作,我這里是讓他們添加50000個(gè)字符
代碼和運(yùn)行結(jié)果如下:
- String用時(shí):約1.6s
- StringBuilder用時(shí):約0.007s
using System;
using System.Diagnostics;
using System.Text;
namespace StringBuild時(shí)間測(cè)試
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 50000; i++)
{
sb.Append(i);
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
Console.ReadKey();
}
}
}
使用StringBuilder運(yùn)行結(jié)果:

using System;
using System.Diagnostics;
using System.Text;
namespace StringBuild時(shí)間測(cè)試
{
class Program
{
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
sw.Start();
string num = "";
for (int i = 0; i < 50000; i++)
{
num += i;
}
sw.Stop();
Console.WriteLine(sw.Elapsed);
Console.ReadKey();
}
}
}
使用String運(yùn)行結(jié)果:

常用方法簡(jiǎn)介:
String
1,CompareTo()方法,比較字符串的內(nèi)容 (根據(jù)assice比較大小,相等返回0,大的返回1,小則返回-1)
2,Replace()用另一個(gè)字符(字符串)替換字符串中給定的字符(字符串)
3,Split()在出現(xiàn)給定字符的地方,把字符串拆分稱(chēng)一個(gè)字符串?dāng)?shù)組(根據(jù)(參數(shù))分解字符串,形成新的字符串)
4,SubString()在字符串中檢索給定位置的子字符串(截取字符串返回子串,兩個(gè)重載)
5,ToLower()把字符串轉(zhuǎn)換成小寫(xiě)形式
6,ToUpper()把字符串轉(zhuǎn)換成大寫(xiě)形式
7,Trim()刪除首尾的空白(比如:注冊(cè)時(shí)用戶(hù)名,密碼不允許首尾出現(xiàn)空格)
8,Concat()方法,合并字符串
9,CopyTo()方法,把字符串中指定的字符復(fù)制到一個(gè)數(shù)組中
10,Format()方法,格式化字符串
11,IndexOf()方法,取得字符串第一次出現(xiàn)某個(gè)給定字符串或者字符的位置(返回第一個(gè)字符串出現(xiàn)的位置,不存在則返回-1,常用于判斷是否包含子串)
12,Insert()把一個(gè)字符串實(shí)例插入到另一個(gè)字符串實(shí)例的制定索引處
13,Join()合并字符串?dāng)?shù)組,創(chuàng)建一個(gè)新字符串
StringBuilder (注意引用命名空間System.Text)
1,創(chuàng)建StringBuilder對(duì)象
//==================StringBuilder==================
//利用構(gòu)造函數(shù)創(chuàng)建
StringBuilder sb = new StringBuilder("Czhenya");
//創(chuàng)建初始長(zhǎng)度的空對(duì)象,
StringBuilder sb1 = new StringBuilder(12);
//創(chuàng)建初始字符串和初始空間
StringBuilder sb2 = new StringBuilder("Czhenya", 20);
//如果初始空間不足,那么將申請(qǐng)新的空間,空間大小為原來(lái)的2倍
關(guān)于StringBuilder對(duì)象創(chuàng)建的時(shí)候的內(nèi)存占用
2,Append()方法,給當(dāng)前字符串追加一個(gè)字符
3,Insert()追加特定格式的字符串
4,Remove()從當(dāng)前字符串中刪除字符
5,Replace()在當(dāng)前字符串中,用某個(gè)字符或者字符串全部替換另一個(gè)字符或者字符串
6,ToString()把當(dāng)前stringBuilder中存儲(chǔ)的字符串,提取成一個(gè)不可變的字符串
點(diǎn)擊查看區(qū)別和詳細(xì)用法:http://m.fzitv.net/article/149520.htm
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
C#基礎(chǔ)知識(shí)之字符串和正則表達(dá)式
目前為止許多編程語(yǔ)言和工具都包含對(duì)正則表達(dá)式的支持,C#也不例外,下面這篇文章主要給大家介紹了關(guān)于C#基礎(chǔ)知識(shí)之字符串和正則表達(dá)式的相關(guān)資料,需要的朋友可以參考下2022-10-10
C# 并發(fā)控制框架之單線(xiàn)程環(huán)境下實(shí)現(xiàn)每秒百萬(wàn)級(jí)調(diào)度
本文介紹了一款專(zhuān)為工業(yè)自動(dòng)化及機(jī)器視覺(jué)開(kāi)發(fā)的C#并發(fā)流程控制框架,通過(guò)模仿Go語(yǔ)言并發(fā)模式設(shè)計(jì),支持高頻調(diào)度及復(fù)雜任務(wù)處理,已在多個(gè)項(xiàng)目中驗(yàn)證其穩(wěn)定性和可靠性2024-10-10
C#定義并實(shí)現(xiàn)單鏈表實(shí)例解析
這篇文章主要介紹了C#定義并實(shí)現(xiàn)單鏈表實(shí)例解析,有助于讀者加深對(duì)C#實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)的理解,需要的朋友可以參考下2014-07-07
C#使用CefSharp實(shí)現(xiàn)內(nèi)嵌網(wǎng)頁(yè)詳解
這篇文章主要介紹了C# WPF里怎么使用CefSharp嵌入一個(gè)網(wǎng)頁(yè),并給出一個(gè)簡(jiǎn)單示例演示C#和網(wǎng)頁(yè)(JS)的交互實(shí)現(xiàn),感興趣的小伙伴可以了解一下2023-04-04

