2013年7月31日 星期三

不浪費記憶體的StringBuilder

前一章節中了解了字串是不可改變的物件
我們知道 頻繁使用字串 更換字串
字串只是不段指向新的記憶體位置
而原本的記憶體位置將會造成,垃圾收集器的負擔

如果系統龐大 將會消耗很多記憶體即造成垃圾收集器的壓力

在這邊可以使用StringBuilder來操作字串
也不會產生新的字串物件

下面來示範 使用StringBuilder玩弄字串

private void btn_true_Click(object sender, EventArgs e)
        {
            StringBuilder P_stringbuilder = //建立字串處理對像
                new StringBuilder(txt_string.Text);
            for (int i = 0; i < P_stringbuilder.Length; i++)//開始循環
                if (P_stringbuilder[i] == ',')//判斷是否出現(,)號
                {//找到","在指定的字元位置上將指定物件的字串表示插入這個執行個體。
                    //插入換行Environment.NewLine
                    P_stringbuilder.Insert(++i,//向字串內新增換行符
                        Environment.NewLine);
                }
            //得到分行後的字串
            txt_Lines.Text = P_stringbuilder.ToString();
            bool P_bl = "abc" == "abc";
            MessageBox.Show(P_bl.ToString());
        }


活用StringBuleder將可以解決記憶體浪費的問題

沒有留言:

張貼留言