溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

.Net Framework文本處理相關(guān)操作方法是怎樣的

發(fā)布時間:2021-11-25 09:28:06 來源:億速云 閱讀:151 作者:柒染 欄目:編程語言

本篇文章為大家展示了.Net Framework文本處理相關(guān)操作方法是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

.Net Framework開發(fā)環(huán)境幫助我們提供了一個功能非常強大的編寫平臺。

數(shù)值和Char實例之間進行轉(zhuǎn)換:

轉(zhuǎn)型:效率***,編譯器會直接產(chǎn)生IL指令來執(zhí)行轉(zhuǎn)換,不會有任何方法的調(diào)用;

但缺點是編譯器要將期望轉(zhuǎn)換的數(shù)值類型看作是基元類型。//c=(Char) 65;

使用Convert類型:System.Convert類型提供了靜態(tài)方法,為checked操作

//c=Convert.ToChar(65);

.Net Framework文本處理中使用Iconvertible接口:Char類型和所有.NET框架類庫FCL中的數(shù)值類型都實現(xiàn)了

Iconvertible接口,該接口定義了如ToChar這樣的方法;但效率不高,存在值類型轉(zhuǎn)化為接口裝箱問題 //c=((IConvertible)65).ToChar(null);

C#認為String是一個基元類型,不能用new操作符來創(chuàng)建String對象。

  1. String s=”Hi there”;  

  2. String file=”C:""Windows”;  

  3. String file=@”C:"Windows”; 

  4. //@符號告訴編譯器該字符串為一個
    字面字符串,可讀性強 

String對象最重要的特性是其恒定性。也就是說,一個字符串一旦被創(chuàng)建,就不可能再將其變長、變短、或者改變其中任何的字符。

.Net Framework文本處理中的編譯器一般將文本常量字符串放在托管模塊的元數(shù)據(jù)中,然后在運行時使用一種稱作字符串駐留string interning的機制訪問它們。

  1. String s=”Hello”;  

  2. Console.WriteLine(Object.
    ReferenceEquals(“Hello”,s);  

//當***個引用字符串的方法被JIT編譯時,所有嵌入在源代碼中的文本常量字符串總會被添加到CLR內(nèi)部的散列表中

運行時動態(tài)創(chuàng)建字符串:

  1. String s1=”Hello”;  

  2. Sting s2=”Hel”;  

  3. String s3=s2+”lo”;  

  4. Console.WriteLine(Object.
    ReferenceEquals(s1,s3)); 

//返回false,因為動態(tài)創(chuàng)建的字符串并沒有添加到CLR內(nèi)部的散列表中

如果一個應(yīng)用程序中所有的字符串比較都僅僅是比較引用而非字符集,且有一種.Net Framework文本處理方法可以將含有相同字符集的動態(tài)字符串變?yōu)橥泄芏阎械囊粋€字符串對象,則將大大提高系統(tǒng)性能。

S3=String.Intern(s3); //返回已經(jīng)存在的string對象的引用,如找不到,則該字符串將被添加到CLR內(nèi)部的散列表中

S3=String.IsInterned(s3); //找不到,返回null

只有當我們需要在應(yīng)用程序中多次比較同一個字符串時,才運用字符串駐留技術(shù)。

字符串池技術(shù)string pooling:將多次出現(xiàn)的字符串只寫入一次到托管模塊的元數(shù)據(jù)中

由于string類型表示的是一個恒定不變的字符串,F(xiàn)CL提供了另外一種類型System.Text.StringBuilder,允許我們通過對字符串和字符執(zhí)行動態(tài)操作來創(chuàng)建String對象。

System.Object中定義了一個共有的無參ToString方法,我們可以在任何類型的實例上通過調(diào)用ToString來獲得該實例的字符串表達形式。

如果需要自己的類型為調(diào)用者提供格式和語言文化選擇的話,我們應(yīng)是其實現(xiàn)System.Iformattable接口:

  1. Public interface Iformattable{  

  2. String ToString(String 
    format,IformatProvider 
    formatProvider);  

將多個對象格式化為一個字符串:

  1. String s=String.Format
    (“On {0:D},{1} is {2:E} 
    years old.”,DateTime.Now,
    ”Wallace”,35);  

  2. Console.WriteLine(s);  

//String的靜態(tài)方法Format接受一個格式化字符串,給格式字符串使用大括號中的數(shù)字來標識可替換的參數(shù)。

StringBuilder的AppendFormat方法是我們能夠以任何期望的方式來格式化對象

.Net Framework文本處理中的任何能夠解析一個字符串的類型都提供有一個名為Parse的共有靜態(tài)方法,該方法接受一個String,返回一個類型的實例。

上述內(nèi)容就是.Net Framework文本處理相關(guān)操作方法是怎樣的,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI