国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

C#字符串操作概念的理解淺析

開發 后端
C#字符串操作之前呢我們要明白C#字符串的一些概念,這里我們向你介紹了Sting、string以及StringBuilder等等C#字符串操作要了解的概念。

C#字符串操作之概念的理解在實際的開發過程中,對字符串的操作是經常遇到的,其中涉及到字符串拼接、拆分、比較、替換等操作。C#提供了string類型,String和StringBuilder兩種類來對字符串進行處理。那么string,String,StringBuilder對字符串進行處理有何異同,在實際編程中,對于不同的字符串操作應該采用哪種方式來提高程序的效率呢?本文將對string,String,StringBuilder進行詳細的解釋和比較,最后在編程過程中遇到的常用的字符串處理進行了總結。

首先讓我們理解string,String,StringBuilder的概念

C#字符串操作之string

string,msdn給出的解釋就是,string 是C#中的關鍵字,并且是引用類型, string 類型表示零或更多 Unicode 字符組成的序列。string 是 .NET Framework 中 String 的別名。但定義相等運算符(== 和 !=)是為了比較 string 對象(而不是引用)的值(后面給出示例解釋這點)。

C#字符串操作之String:

String是類,表示文本,即一系列 Unicode 字符。String 對象是不可改變的。每次使用 System.String 類中的方法之一時,都要在內存中創建一個新的字符串對象,這就需要為該新對象分配新的空間。如:當我們實例化一個String的對象后,在內存中為此對象分配一個空間。如下:String str = “hello”;當我們修改str的值的時候,如:str = “hello world”;此時,系統會為str重新分配一個空間。這樣原來的內存空間就被浪費掉了,只能等待垃圾回收器回收。在需要對字符串執行重復修改的情況下,與創建新的 String對象相關的系統開銷可能會非常昂貴。

C#字符串操作之String與string的區別:

string 是 .NET Framework 中 String 的別名,string是C#基元類型(primitive),簡單來說就是編譯器直接支持的數據類型。基元類型要直接映射到Framework類庫(FCL)中的類型,例如,C#中一個基元類型int直接映射到System.Int32類型,這里int是基元類型,System.Int32是FCL類型。而String是FCL類型的,所以在C#的編譯時,會自動的把string轉化為System.String。所以string與String實質上沒什么區別,只是在使用string要做一次轉換,轉換為String。因此,在編碼時我們推薦使用String。

string雖然為引用類型,但是(== 和 !=)是為了比較 string 對象(而不是引用)的值。

  1. string a = "hello";  
  2. string b = "hel";  
  3. b = b + "lo";  
  4. string c = "hello";  
  5. Response.Write(a==b); //True  
  6. Response.Write((object)a == (object)b); //False  
  7. Response.Write((object)a == (object)c); //True 

a==b比較的是值而非引用。所以a==b為True。當創建多個字符串內容相同的對象時,都只會指向同一個引用; a和c都指向同一個a的引用,并不會為c重新分配內存;這樣即可保證內存有效利用;所以上面的(object)a == (object)c比較的是a與c的引用,結果為True。這里面b由于進行了累加操作(b = b + "lo";)b又重新分配了內存,所以(object)a == (object)b比較的是引用,所以為False。

接下來我們再通過幾個例子來理解下String(string)

  1. String str1 = "abc";  
  2. String str2 = str1;  
  3. str1 = "123";  
  4. Response.Write(str2);//abc 

輸出結果是abc,首先給str賦值為"abc",接著執行str2 = str1,使str2和str1指向同一引用,即內存地址。當執行str1 = "123"后,String對象是不可改變的,實質上str1 = "123"是str1=new string("123")的簡寫,它的每一次賦值都會拋掉原來的對象而生成一個新的字符串對象,分配新的內存空間,str1 = "123"語句編譯器私底下創建了一個新的字符串對象來保存新的字符序列"123",也就是此str1已非彼str1了。因此str1的值的改變也就不能影響先前str1指向地址的值了,當然str2的值也就不會改變了。因此string是不可改變的。
通過上面的例子,如果我們執行下面這些語句:

  1. String sql = “Select * From T_Test ”;  
  2. sql += “Where id=888 ”;  
  3.         sql += “And type=3 ”;  
  4. sql += “Order By Desc”; 

實際上這樣是十分浪費內存空間的。如果是頻繁的這樣做的話,建議是使用StringBuilder對象,或者這樣寫:

  1. String sql = “Select * From T_Test” +   
  2.  
  3. “Where id=888 ” + “And type=3” + “Order By Desc ” ;  

C#字符串操作之StringBuilder:

出于性能方面的考慮,大量的串聯或所涉及其他字符串操作應通過StringBuilder類來執行。StringBuilder表示可變字符字符串, 它允許我們有效的對字符串的字符執行動態操作,有效的縮減字符串的大小或者更改字符串中的字符。如果字符串變大,超過已經分配的字符的大小,StringBuilder就會自動的分配一個全新的、更大的數組,并開始使用新的數組,雖然 StringBuilder 對象是動態對象,允許擴充它所封裝的字符串中字符的數量,但是您可以為它可容納的最大字符數指定一個值。此值稱為該對象的容量,不應將它與當前 StringBuilder 對象容納的字符串長度混淆在一起。例如,可以創建 StringBuilder 類的帶有字符串“Hello”(長度為 5)的一個新實例,同時可以指定該對象的最大容量為 25。當修改 StringBuilder 時,在達到容量之前,它不會為其自己重新分配空間。當達到容量時,將自動分配新的空間且容量翻倍。可以使用重載的構造函數之一來指定 StringBuilder 類的容量。

String 或 StringBuilder 對象的串聯操作的性能取決于內存分配的發生頻率。String 串聯操作每次都分配內存,而 StringBuilder 串聯操作僅當 StringBuilder 對象緩沖區太小而無法容納新數據時才分配內存。因此,如果串聯固定數量的 String 對象,則 String 類更適合串聯操作。這種情況下,編譯器甚至會將各個串聯操作組合到一個操作中。如果串聯任意數量的字符串,則 StringBuilder 對象更適合串聯操作;例如,某個循環對用戶輸入的任意數量的字符串進行串聯

C#字符串操作的概念就向你介紹到這里,希望對你了解和學習C#字符串操作有所幫助。

【編輯推薦】

  1. C#動態二維數組函數處理方案
  2. C#集合、C#動態數組的概念淺析
  3. C#動態數組的詳解介紹
  4. C#動態數組的應用詳解實例
  5. C#數組復制方法詳解
責任編輯:仲衡 來源: it168.com
相關推薦

2009-08-24 13:04:44

操作步驟C#字符串

2009-08-11 10:26:49

C#算法C#字符串反轉

2009-09-01 17:50:23

C#截取字符串

2009-09-03 18:45:06

GridView格式化

2009-09-02 10:58:02

C#動態數組

2009-09-01 17:58:55

C#截取字符串

2009-08-24 14:26:42

C# 泛型類

2009-08-20 14:31:55

C#正則表達式字符串

2009-09-14 13:44:14

Lambda ExprC# Lambda

2009-09-02 16:21:20

C#字符串

2009-08-17 13:34:02

C#異步操作

2009-08-21 16:37:54

C#客戶端程序

2009-08-28 10:50:17

C#字節數組轉換成字符

2009-08-06 16:01:09

C#字符串函數大全

2009-08-26 13:24:54

C#字符串

2009-08-24 17:06:37

C#字符串

2009-08-07 14:15:21

C#字符串分割

2009-08-07 13:50:11

C#字符串

2009-08-07 14:22:56

C#字符串搜索

2009-08-07 14:34:33

C#模式字符串
點贊
收藏

51CTO技術棧公眾號

国产精品婷婷| 尤物在线观看一区| 456亚洲影院| 日韩精品黄色| 91女厕偷拍女厕偷拍高清| 国产精品日韩一区二区| 亚洲最新中文字幕| 猫咪成人官网| 国产乱理伦片在线观看夜一区| 国产男人精品视频| 日本xxxx黄色| 国内久久精品视频| 91精品免费在线观看| 69免费视频| 国产电影一区在线| 电影午夜精品一区二区三区| 精品国产乱子伦一区二区| 香蕉视频一区二区三区| 欧美色123| 97不卡在线视频| 免费成人美女女| 欧美日韩一区二区在线观看| 国产一级二级在线| 91丨porny丨国产| 在线国产99| 日韩午夜一区| 亚洲一区二区四区蜜桃| 国产自产在线视频| 久久久精品网| 国产欧美日本在线| 亚洲午夜视频| 日韩一区二区在线看片| 色一情一乱一伦一区二区三区丨 | 亚洲视频视频在线| 二区三区在线观看| 欧美亚洲日本一区| 欧美18xxxxx| 欧美视频在线视频| 在线免费看黄av| 激情综合久久| 亚洲精品欧美极品| 欧美福利在线| 99re国产| 99国内精品| 日本在线观看一区| 奇米在线7777在线精品| 色乱码一区二区三在线看| 日韩黄色免费网站| 影音先锋亚洲视频| 国产精品一区专区| 日韩欧美国产免费| 午夜久久免费观看| 成人福利视频在线观看| 手机在线一区二区三区| 亚洲伊人成综合成人网| 亚洲美女色禁图| 一级特黄录像免费播放全99| 国产一区二区三区观看| 久久久久久久久久久福利| 国产欧美一区二区精品性| 日本韩国在线视频| 狠狠色狠色综合曰曰| 青青草观看免费视频在线| 欧美日本韩国一区二区三区视频| 日韩成人伦理| 欧美成人在线影院| 日韩久久电影| 日本一区二区三区四区高清视频 | 日本精品福利视频| avav成人| 日韩在线播放av| 美女网站一区二区| 欧美日韩高清在线播放| 欧美成人免费一级人片100| 日韩中文一区| 久久超碰97中文字幕| 最新中文字幕在线视频| 日韩电影免费观| 国内揄拍国内精品少妇国语| 欧美精品免费视频| 国产精品电影| 欧美黑人极品猛少妇色xxxxx| 一区二区导航| 久久久久久久久久码影片| 国产成人亚洲精品狼色在线 | 国产精品mp4| 国产日韩一区| 久久久一本二本三本| 亚洲a一区二区| 麻豆蜜桃在线| 91成人精品网站| 亚洲国产二区| 男女曰b免费视频| 欧美日韩激情一区二区| 亚洲热av色在线播放| 91九色视频导航| 中国色在线日|韩| 国产日韩精品一区二区三区| eeuss在线观看| 亚洲欧洲激情在线| 免费视频一区三区| 肉大捧一出免费观看网站在线播放 | sm久久捆绑调教精品一区| 欧美高清视频一区| 欧美日韩免费高清一区色橹橹| 国产成年精品| 亚洲人成无码网站久久99热国产| 欧美精品一区二区不卡| 欧美国产小视频| 久久观看最新视频| 日韩欧美视频一区二区三区| 久久人体大尺度| 69视频在线免费观看| 少妇一区二区三区| 亚洲色图狂野欧美| 伊人久久综合影院| 伊人久久大香线蕉av一区| 成人欧美一区二区三区视频网页| 一区二区三区伦理| 国产99久久久欧美黑人| 裸体在线国模精品偷拍| 夜色福利资源站www国产在线视频| 亚洲性视频网站| 激情欧美一区二区三区| 中文字幕第88页| 亚洲成人精品av| 91精品啪在线观看国产81旧版| 黄色一级在线视频| 91精品婷婷国产综合久久| 国产亚洲一区| 欧美 激情 在线| 亚洲国产精品资源| 午夜久久免费观看| 午夜伦伦电影理论片费看| 亚洲另类图片色| 在线视频精品| 色视频在线观看福利| 久久久久国产精品一区| 国产福利一区二区三区| 污污的网站在线看| 国产精品一区二区欧美| 亚洲成a人片在线不卡一二三区 | 国产成人免费xxxxxxxx| 成人av一区| 国产精品中文字幕久久久| 国产色一区二区| 欧美性suv| 婷婷视频在线播放| 日韩免费高清视频| 亚洲美女网站| 91精彩在线视频| 成人综合电影| 亚洲国产精品人人做人人爽| 亚洲区一区二区| 91偷拍精品一区二区三区| 日韩中文字幕第一页| 亚洲成年人影院| 成人欧美一区二区三区1314| 青青草97国产精品免费观看无弹窗版| 影音先锋欧美资源| 欧美精品久久99久久在免费线 | 91麻豆精品国产91| 国产欧美日韩精品专区| 亚洲在线免费看| 国产三级电影在线观看| 91精品国产网站| 国产精品情趣视频| 伊人久久亚洲| 成人软件网18免费视频| 欧美一级大片视频| 亚洲欧美视频在线观看视频| 精品国产1区| 在线黄色av| 国产精品一区二区三区精品| 91麻豆精品国产91久久久久久久久| 欧美私人啪啪vps| 久草资源在线| 亚洲一区二区三区免费观看| 国产丝袜一区二区三区| 99久久精品免费看国产免费软件| 国产精品久久久久久久久久辛辛| 日日噜噜夜夜狠狠| 国产美女91呻吟求| 欧美精品三级在线观看| 韩国欧美一区二区| 91麻豆精品一二三区在线| 男人插女人欧美| 午夜影视日本亚洲欧洲精品| 欧美日本高清一区| 精品国产无码在线| 欧美精品一区二| 日产欧产美韩系列久久99| 涩涩av在线| 日av中文字幕| 91精品久久久久久久久青青| 欧美高清一级片在线| 一本色道久久精品| 亚洲精品成人av| 久久看人人爽人人| 国产一区二区三区四区五区美女|