【Unity|C#】基礎篇(17)——字符串處理(String/StringBuilder)


【學習資料】

  《C#圖解教程》(第25章)https://www.cnblogs.com/moonache/p/7687551.html
  電子書下載:https://pan.baidu.com/s/1mhOmBG0

 

【內容】 

    • string
    • StringBuilder
    • 兩者比較

 


 【筆記】

  • string
    • string是  System.String 類的別名
    • 字符串常量,內容不可修改。
    • 注:每次修改(賦值、拼接、替換),都是 重新生成新的字符串(開辟新的堆內存),然后將引用指向新的字符串。
    • 如圖:string拼接時,會重新生成新的字符串(開辟新的堆內存),然后改變 s 的引用

         

    • 常用方法

 

 

  • StringBuilder
    • 命名空間: using System.Text; 
    • 內部數據存儲:可變數組 char[] 
    • 每次修改(賦值、拼接、替換),都是對內部char數組進行操作,不會在堆內存創建新的字符串。
    • 注:StringBuilder創建時需要預設內置數組char[]的長度大小。所以初始化會比較慢一點。
    • 注:只有當新的字符串的長度 大於 內部數組最大長度時,才會重新創建新的 char[]  (開辟新的堆內存)
    • 如圖:拼接時,只會在內部分配的可變數組中進行修改,s 的引用不變

        

 

  • 兩者比較
    • 頻繁改動的字符串:使用StringBuilder性能更高,GC更少。
    • 改動不多:性能差不多,而使用string,操作比較方便。
    • 注:StringBuilder創建時需要預設內置數組char[]的長度大小。所以初始化會比較慢一點。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM