總結(jié)的5個(gè)C#字符串操作方法分享
字符串操作是C#中最基本的、最常見的、也是用的最多的,以下我總結(jié)了幾種常見的方法:
1.把字符串按照分隔符轉(zhuǎn)換成 List
/// <summary> /// 把字符串按照分隔符轉(zhuǎn)換成 List /// </summary> /// <param name="str">源字符串</param> /// <param name="speater">分隔符</param> /// <param name="toLower">是否轉(zhuǎn)換為小寫</param> /// <returns></returns> public static List<string> GetStrArray(string str, char speater, bool toLower) { var list = new List<string>(); var ss = str.Split(speater); foreach (var s in ss) { if (string.IsNullOrWhiteSpace(s) || s == speater.ToString(CultureInfo.InvariantCulture)) continue; var strVal = s; if (toLower) { strVal = s.ToLower(); } list.Add(strVal); } return list; }
2.把字符串轉(zhuǎn) 按照, 分割 換為數(shù)據(jù)
/// <summary> /// 把字符串轉(zhuǎn) 按照, 分割 換為數(shù)據(jù) /// </summary> /// <param name="str"></param> /// <returns></returns> public static string[] GetStrArray(string str) { return str.Split(new[] { ',', ',' }); }
3.得到數(shù)組列表以逗號(hào)分隔的字符串
/// <summary> /// 得到數(shù)組列表以逗號(hào)分隔的字符串 /// </summary> /// <param name="list"></param> /// <param name="speater"></param> /// <returns></returns> public static string GetArrayStr(List<string> list, string speater) { var sb = new StringBuilder(); for (var i = 0; i < list.Count; i++) { if (i == list.Count - 1) { sb.Append(list[i]); } else { sb.Append(list[i]); sb.Append(speater); } } return sb.ToString(); }
4.得到字符串長(zhǎng)度
/// <summary> /// 得到字符串長(zhǎng)度 /// </summary> /// <param name="inputStr"></param> /// <returns></returns> public static int StrLength(string inputStr) { var asc = new ASCIIEncoding(); var s = asc.GetBytes(inputStr); return s.Sum(t => t == 63 ? 2 : 1); }
5.截取指定長(zhǎng)度字符串
/// <summary> /// 截取指定長(zhǎng)度字符串 /// </summary> /// <param name="inputString"></param> /// <param name="len"></param> /// <returns></returns> public static string CutStr(string inputString, int len) { var isShowFix = false; if (len % 2 == 1) { isShowFix = true; len--; } var ascii = new ASCIIEncoding(); var tempLen = 0; var tempString = ""; var s = ascii.GetBytes(inputString); for (var i = 0; i < s.Length; i++) { tempLen += s[i] == 63 ? 2 : 1; try { tempString += inputString.Substring(i, 1); } catch { break; } if (tempLen > len) break; } var mybyte = Encoding.Default.GetBytes(inputString); if (isShowFix && mybyte.Length > len) tempString += "…"; return tempString; }
暫時(shí)就這五種方法了。
相關(guān)文章
使用 BenchmarkDotNet 對(duì) C# 代碼進(jìn)行基準(zhǔn)測(cè)試
這篇文章主要介紹了使用 BenchmarkDotNet 對(duì) C# 代碼進(jìn)行基準(zhǔn)測(cè)試,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03基于Unity Line Renderer組件的常用屬性說明
這篇文章主要介紹了基于Unity Line Renderer組件的常用屬性說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-04-04C# networkcomms 3.0實(shí)現(xiàn)模擬登陸總結(jié)
這篇文章主要介紹了C# networkcomms 3.0實(shí)現(xiàn)模擬登陸總結(jié),需要的朋友可以參考下2017-06-06Unity Shader實(shí)現(xiàn)圖形繪制(藍(lán)天白云大海)
這篇文章主要為大家詳細(xì)介紹了Unity Shader實(shí)現(xiàn)圖形繪制,藍(lán)天白云大海,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-04-04