在實際應用當中無論寫什麼樣的軟體、項目、或者寫一個簡單程式很多時候都會用到字串操作。
下面簡單介紹一下用System.Text.StringBuilder (簡稱SB)實現字串累加等操作。
這個類實現了很基本很簡單的方法,但是在產生代碼或者模板代碼的時候發揮重要作用。
聲明:咋一看是標題黨來了,沒有什麼別的目的,只覺得好玩,剛好標題是簡稱或者同聲詞。
歡迎大家拍磚,或許你有更強大處理相關功能的類,希望也能分享一下,留下連結什麼的也可以。
不多說了,直接上代碼。
/// <summary> /// 字串增加類 /// </summary> public class StringPlus { /// <summary> /// 建構函式 /// </summary> public StringPlus() { sb = new StringBuilder(); } private StringBuilder sb; /// <summary> /// 在結尾追加 /// </summary> /// <param name="text"></param> /// <returns></returns> public string Append(string text) { sb.Append(text); return sb.ToString(); } /// <summary> /// 在結尾追加一行 /// </summary> /// <returns></returns> public string AppendLine() { sb.Append("\r\n"); return sb.ToString(); } /// <summary> /// 在結尾追加一行內容 /// </summary> /// <param name="text">輸入的文本</param> /// <returns></returns> public string AppendLine(string text) { sb.Append(text); sb.Append("\r\n"); return sb.ToString(); } /// <summary> /// 添加附帶縮排空白字元串累加 /// </summary> /// <param name="spaceNum">空格數</param> /// <param name="text">空格文本</param> /// <returns></returns> public string AppendSpace(int spaceNum, string text) { sb.Append(Space(spaceNum)); sb.Append(text); return sb.ToString(); } /// <summary> /// 添加添加附帶縮排空格和空行的字串累加 /// </summary> /// <param name="spaceNum">空行數</param> /// <param name="text">文本</param> /// <returns></returns> public string AppendSpaceLine(int spaceNum, string text) { sb.Append(Space(spaceNum)); sb.Append(text); sb.Append("\r\n"); return sb.ToString(); } /// <summary> /// 刪除最後一個字元 /// </summary> /// <param name="strchar">輸入字串</param> public void DeleteLastChar(string strchar) { string str = sb.ToString(); int length = str.LastIndexOf(strchar); if (length > 0) { sb = new StringBuilder(); sb.Append(str.Substring(0, length)); } } /// <summary> /// 刪除最一個逗號 /// </summary> public void DeleteLastComma() { string str = sb.ToString(); int length = str.LastIndexOf(","); if (length > 0) { sb = new StringBuilder(); sb.Append(str.Substring(0, length)); } } /// <summary> /// 移除指定字串 /// </summary> /// <param name="start">開始索引位置</param> /// <param name="num">長度</param> public void Remove(int start, int num) { sb.Remove(start, num); } /// <summary> /// 添加附帶空格縮排 /// </summary> /// <param name="spaceNum">空格數</param> /// <returns></returns> public string Space(int spaceNum) { StringBuilder builder = new StringBuilder(); for (int i = 0; i < spaceNum; i++) { builder.Append("\t"); } return builder.ToString(); } /// <summary> /// 重寫ToString()方法 /// </summary> /// <returns></returns> public override string ToString() { return sb.ToString(); } /// <summary> /// 擷取字串內容 /// </summary> public string Value { get { return sb.ToString(); } } }