狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

字符串和正則表達(dá)式

admin
2017年2月7日 18:48 本文熱度 5521
System.String是一個(gè)功能非常強(qiáng)大且用途非常廣泛的基類,但它不是.NET中唯一與字符串相關(guān)的類,特別是System.Text和System.Text.RegularExpressions命名空間中的類。本文主要介紹內(nèi)容:
1、創(chuàng)建字符串
2、格式化表達(dá)式
3、正則表達(dá)式

一、System.String類

System.String是一個(gè)類,專門用于存儲(chǔ)字符串,允許對(duì)字符串進(jìn)行許多操作。
例如:
string messsage1 = "Hello"// return "Hello"
message1 += ", There"// return "Hello, There"
string message2 = message1 + "!" //return "Hello, There!"
C#還允許類似于索引符的語法來提取指定的字符:
char char4 = "message"[4]; //return ''a''

1.1 創(chuàng)建字符串

string類的功能非常強(qiáng)大,但是它存在一個(gè)問題:重復(fù)修改給定的字符串,效率很低。它實(shí)際上是一個(gè)不可變的數(shù)據(jù)類型,一旦對(duì)字符串進(jìn)行了初始化,該字符串就不能改變了。修改該字符串的內(nèi)容時(shí),實(shí)際上是創(chuàng)建一個(gè)新的字符串,如果有必要,可以把舊的字符串內(nèi)容復(fù)制到新字符串中。
例如:
string greetingText= "Hello. ";
greetingText 
+= "This is source code";
在執(zhí)行這段代碼時(shí),首先創(chuàng)建一個(gè)String對(duì)象greetingText,并初始化為文本"Hello. "(最后是一個(gè)空格)。此時(shí).NET運(yùn)行庫(kù)為該字符串分配足夠的內(nèi)存在保存初始文本(7個(gè)字符),再設(shè)置變量greetingText,表示這個(gè)字符串實(shí)例。從表面上看,執(zhí)行下一句代碼,是把新的文本直接添加到初始文本的后面,但實(shí)際并非如此執(zhí)行的。而是另外創(chuàng)建一個(gè)新的字符串實(shí)例,給他分配足夠的內(nèi)存,以保存合并起來的文本,然后更新存儲(chǔ)再變量greetingText中的地址,使變量指向新的字符串對(duì)象。舊的字符串對(duì)象被撤銷了引用——不再有變量引用它,下一次垃圾收集器清理應(yīng)用程序中所有未使用的對(duì)象時(shí),就會(huì)刪除它。

當(dāng)字符串的長(zhǎng)度很大的時(shí)候,這樣做顯然影響了執(zhí)行效率,所以C#中用System.Text.StringBuilder類來處理較長(zhǎng)的字符串。StringBuilder類功能沒有String類強(qiáng)大,功能僅限于替換和添加或刪除字符串中的文本,但是工作方式非常高效。
用StringBuilder類創(chuàng)建字符串:
StringBuilder greetingBuilder = new StringBuilder("Hello from all the guys at Wrox Press. "150);//顯示給定初始文本內(nèi)容和分配內(nèi)存長(zhǎng)度

StringBuilder message 
= new StringBuilder("Hello");//僅僅給出字符串,系統(tǒng)自動(dòng)分配內(nèi)存

StringBuilder message2 
= new StringBuilder(20);//給指定容量創(chuàng)建一個(gè)空的StringBuiler 

StringBuiler類有兩個(gè)主要屬性:
Length指定字符串的實(shí)際長(zhǎng)度
Capacity是字符串占據(jù)存儲(chǔ)單元的長(zhǎng)度
StringBuilder類的主要方法:
Append()方法,在字符串尾部添加新的文本
Replace()方法,替換文本

注意:不能把StringBuilder轉(zhuǎn)換為String,如果要把StringBuilder的內(nèi)容輸出為String,唯一的方式是使用ToString()方法。

1.2 格式化字符串

double d = 13.45;
int i = 45
;
sting result 
= String.Format("The double is {0,10:E} and the int contains {1}",d,i);
{}中的0、1等分別對(duì)應(yīng)后面的d和i,10:E是格式,表示占10個(gè)字符,如果數(shù)字是正數(shù),結(jié)果向右對(duì)齊,如果是負(fù)數(shù)則左對(duì)齊。E表示科學(xué)計(jì)數(shù)法。
格式符應(yīng)用含義示例
C數(shù)字類型專用場(chǎng)合的貨幣值$4834.50(USA)
D只用于整數(shù)類型一般的整數(shù)4834
E數(shù)字類型科學(xué)計(jì)數(shù)法4.834E+003
F數(shù)字類型小數(shù)點(diǎn)后的位數(shù)固定4834.50
G數(shù)字類型一般的數(shù)字4834.5

N

數(shù)字類型通常是專用場(chǎng)合的數(shù)字格式4,834.50
P數(shù)字類型百分比計(jì)數(shù)法432,000.00%
X只用于整數(shù)類型16進(jìn)制格式1120(如果需要顯示0x1120,需要寫上0x)

二、正則表達(dá)式

2.1 正則表達(dá)式概述

正則表達(dá)式語言是一種專門用于字符串處理的語言,使用正則表達(dá)式可以對(duì)字符串執(zhí)行許多復(fù)雜而高級(jí)的操作,例如:區(qū)分URI的各個(gè)元素(例如:http://www.sina.com.cn,提取協(xié)議、計(jì)算機(jī)名、文件名等)。
在C#中只需要用System.Text.RegularExpressions類的RegEx()方法或者調(diào)用靜態(tài)方法RegEx(),給它們傳遞要處理的字符串和一個(gè)正則表達(dá)式,就可以完成我們所需要的操作,得到預(yù)期的結(jié)果了。
下面列出正則表達(dá)式常用字符表
符號(hào)含義示例匹配示例
^輸入文本的開頭^BB,但只能是文本中的第一個(gè)字符
$輸入文本的結(jié)尾X$X,但只能是文本的最后一個(gè)字符
.除了換行符(\n)以外的所有單個(gè)字符i.ationisation、ization
*可以重復(fù)0次或者多次的前導(dǎo)字符ra*trt、rat、raat、raaat等
+可以重復(fù)1次或者多次的前導(dǎo)字符ra+trat、raat和raaat等(不包含rt)
?可以重復(fù)0次或者1次的前導(dǎo)字符ra?trt或者rat
\s任何空白字符\sa[space]a、\ta、\na等
\S任何不是空白的字符\SF

aF、rF、cF等,但不能是\tF

\b字邊界ion\b以ion結(jié)尾的任何字
\B是不是字邊界的位置\BX\B字中間的任何X
如果搜索一個(gè)元字符,可以用.(一個(gè)句點(diǎn))表示所有除了\n以外的字符,而\.表示一個(gè)點(diǎn)。
可以把要替換的字符放到括號(hào)中:[1│C]表示字符可以是1或者C,如果要搜索map或者man,可以用ma[n│p]。
方括號(hào)也可以表示范圍:[a-z]表示a到z的所有小寫字母。

示例如下:
string Text = @"This comprehensive compendium provides a broad and thorough investigation of all aspects of programming with ASP.NET";
string pattern = @"\ba";//查找所有以a開頭的字符

MatchCollection matches = Regex.Matches(Text, pattern, RegexOptions.IgnoreCase);

該文章在 2017/2/7 18:48:30 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved