您好,登錄后才能下訂單哦!
本篇內容主要講解“C#字符串的拼接方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C#字符串的拼接方法”吧!
直接通過+拼接是我們在代碼中最常見的一種方式,下面以一個簡單的代碼段來分析分析
1stringstr="1";
2
3str=str+"2";
第一段代碼,首先分配了一個內存空間來存儲str變量,其值為“1”
第二段代碼,重新分配了一個新的內存空間來存儲“12”,并將str指向新地址
通過分析,其實我們不難發現,兩端就簡單的代碼,就會有兩次內存地址操作,隨著拼接字符串的個數地址,分配內存地址的次數也遞增,當幾個簡單的字符串通過該方式拼接時,其實我們還是感覺不到性能的影響,但是當字符串數量大時,你都會有感覺了,那樣不僅僅造成內存的浪費,還直接影響性能。
所以在實際開發工程中,通過+拼接字符串比較常見,但是如果只是見到這種方式也就不那么友好了,既然不友好,那么顯然就會有比較友好的方式啦,下面我們就分析分析通過StringBuilder來實現字符串的拼接。
StringBuilder其實內部相當于是維護的一個字符數組,是一個可以動態增加自身數據長度,其默認長度為16,當存儲的字符串超出其長度是,會自動擴容2倍長度。
哈哈,說到這兒,估計你看出了問題,那就是超出長度自動擴容,自動擴容是不是也需要犧牲性能,當然在幾次擴容你還感覺不到性能的影響,但是如果詞數多了,你就會感覺很明顯,這也是對StringBuilder的一些使用技巧。
我們去看不同小伙伴的代碼,你就會發現,技術老鳥,在初始化StringBuilder的時候會根據預估將要存儲的字符串大小,給StringBuilder初始化一個長度,這也就是細節上的差距體現。
說了半天的廢話,是不是要來的實際的代碼來證明說的不是廢話呢?不急不急,在文章最后,我會專門寫測試代碼對比分析的。
對于一些格式的數據拼接填充,string.Format也是經常看見的,他的一個很大好處就是,看上去比較清晰
其實我們看過string的底層實現我們會發現,其底層本質還是StringBuilder來實現的
C#6.0出現了$方式拼接字符串,其實簡單說就是string.Format簡化操作版,string.Format如果拼接的字符串太多,估計自己都懵逼的分不清對應關系了,不知道你們遇到過沒有,反正我原來是遇到過的。$就很好的規避了該問題
到此,相信大家對“C#字符串的拼接方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。