C#字符串學(xué)習(xí)經(jīng)驗(yàn)
不管創(chuàng)建什么類(lèi)型的應(yīng)用程序,你都需要使用字符串。無(wú)論數(shù)據(jù)如何存儲(chǔ),終端用戶(hù)總要與可讀的文本打交道。因此,了解如何使用字符串是任何.NET開(kāi)發(fā)者創(chuàng)建豐富的應(yīng)用程序所需要學(xué)習(xí)的必要知識(shí)。
使用C#字符串
使用C#字符串是創(chuàng)建高質(zhì)量應(yīng)用程序的一個(gè)必要的技巧。即使你在處理數(shù)字或圖像數(shù)據(jù),終端用戶(hù)也需要上下文反饋。本文將向你介紹.NET字符串,如何格式它們,操作它們和比較它們,及其它有用的操作。
1 .NET字符串簡(jiǎn)介
在.NET框架和通用語(yǔ)言運(yùn)行時(shí)刻(CLR)以前,開(kāi)發(fā)者總是花費(fèi)大量時(shí)間處理字符串。一個(gè)字符串例程可重用庫(kù)幾乎是每一個(gè)C和C++程序員的工具箱中的一部分。編寫(xiě)在不同程序語(yǔ)言之間交換字符串?dāng)?shù)據(jù)的代碼也是相當(dāng)困難的。例如,Pascal把字符串存儲(chǔ)為一個(gè)內(nèi)存字符數(shù)組,其中,該數(shù)組的第一個(gè)元素指示字符串的長(zhǎng)度;而C把字符串存儲(chǔ)為一個(gè)具有可變長(zhǎng)度的字符內(nèi)存數(shù)組,字符串的末端加上一個(gè)ASCII null字符(在C中以"\0"表示)。
在.NET框架中,字符串以常量方式存儲(chǔ)。這意味著,當(dāng)你用C#(或任何其它.NET語(yǔ)言)創(chuàng)建一個(gè)字符串時(shí),該字符串以一種固定大小存儲(chǔ)在內(nèi)存以便CLR運(yùn)行更快些。結(jié)果是,當(dāng)你實(shí)現(xiàn)例如連接字符串或修改一個(gè)字符串中的單個(gè)字符時(shí),CLR實(shí)際上是創(chuàng)建你的字符串的多個(gè)副本。
C#中的字符串與其它值類(lèi)型例如整數(shù)或浮點(diǎn)數(shù)聲明方式相同,見(jiàn)下面的例子:
- string x = "Hello World";
- string y;
- string z = x;
2 格式化C#字符串
當(dāng)使用字符串時(shí)最常見(jiàn)的一項(xiàng)任務(wù)是格式化字符串。當(dāng)向用戶(hù)顯示信息時(shí),你經(jīng)常顯示如日期,時(shí)間,數(shù)字值,十進(jìn)制值,貨幣值,甚至象十六進(jìn)制數(shù)字這樣的內(nèi)容。C#字符串都能夠顯示這些類(lèi)型的信息,甚至更多。另外一個(gè)強(qiáng)有力的特征是,當(dāng)你使用該標(biāo)準(zhǔn)格式化工具時(shí),該格式化的輸出具有地區(qū)感知特征。例如,如果你以短格式顯示一個(gè)英格蘭用戶(hù)的當(dāng)前日期,那么對(duì)于一個(gè)美國(guó)用戶(hù)來(lái)說(shuō),當(dāng)前日期的短格式將以不同形式顯示。
為了創(chuàng)建一個(gè)格式化的字符串,你僅需要調(diào)用string類(lèi)的Format方法,并且傳遞給它一個(gè)格式字符串,如下列代碼所顯示的:
- string formatted = string.Format("The value is {0}", value);
在此,{0}占位符指示一個(gè)值應(yīng)該被插入的位置。除了指定一個(gè)值應(yīng)該被插入的位置外,你還可以指定該值的格式。
【編輯推薦】