using System; namespace iWareCommon.Utils { public class StringHelper { private static string charStr = "0123456789"; /// /// 格式化字符串,将物料中的单引号格式化为两个单引号 /// /// /// public static string RelpaceQuot(string str) { return string.IsNullOrEmpty(str)? "":str.Replace("'","''"); } /// /// 将型如yyyyMMdd的日期类型转为yyyy-MM-dd的日期类型 /// /// /// public static string ConvertDateTimeStr(string str) { if(string.IsNullOrEmpty(str) || str.Length != 8) { return str; } return str.Substring(0,4) + "-" + str.Substring(4,2) + "-" + str.Substring(6,2); } /// /// 获取下一个字符串 /// /// /// public static string NextStr(string str) { var charArray = charStr.ToCharArray(); var len = str.Length; if (str == "".PadLeft(len, charArray[charArray.Length-1])) { return "".PadLeft(len + 1, charArray[0]); } var strArray = str.ToCharArray(); for (var i = 0; i < strArray.Length; i++) { var pos = charStr.IndexOf(strArray[i]); if (pos < charArray.Length - 1) { strArray[i] = charArray[pos + 1]; break; } strArray[i] = charArray[0]; } return new string(strArray); } /// /// 获取第一个字符串 /// /// public static string GetFirstStr() { var charArray = charStr.ToCharArray(); return "".PadLeft(6, charArray[0]); } /// /// 压缩字符串的算法 /// /// /// public static string Compress(string str) { var res = ""; var lastChar = "\0"; var frequency = 0; var currentChar = string.Empty; for (int i = 0; i < str.Length; i++) { if (str[i].ToString() != lastChar) { if (!string.IsNullOrEmpty(currentChar)) { res += (frequency - 1 > 0 ? (frequency - 1).ToString() : string.Empty) + currentChar; } currentChar = str[i].ToString(); lastChar = currentChar; frequency = 1; } else { frequency += 1; } } if (!string.IsNullOrEmpty(currentChar)) { res += (frequency - 1 > 0 ? (frequency - 1).ToString() : string.Empty) + currentChar; } return res; } /// /// 解压字符串的算法 /// /// /// public static string DeCompress(string str) { var nChars = "0123456789"; var res = ""; var nbStr = "0"; for (int i = 0; i < str.Length; i++) { if (nChars.IndexOf(str[i]) > -1) { nbStr += str[i]; } else { var nb = Convert.ToInt32(nbStr) + 1; res += "".PadLeft(nb, str[i]); nbStr = "0"; } } return res; } /// /// 获取str字符串中key的值 /// /// /// public static string GetValue(string syntax, string key) { var str = string.Format("\"{0}\":", key); var index = syntax.IndexOf(str); if (index < 0) { return ""; } var beginIndex = syntax.IndexOf("\"", index + str.Length); var endIndex = syntax.IndexOf("\"", beginIndex + 1); return syntax.Substring(beginIndex + 1, endIndex - beginIndex - 1); } } }