using System; using System.Text; namespace BatchService.Framework.Utility { /// /// 字符串操作工具集 /// public class StringUtil { public StringUtil() { // // TODO: 在此处添加构造函数逻辑 // } /// /// 从字符串中的尾部删除指定的字符串 /// /// /// /// public static string Remove(string sourceString, string removedString) { try { if (sourceString.IndexOf(removedString) < 0) throw new Exception("原字符串中不包含移除字符串!"); string result = sourceString; int lengthOfSourceString = sourceString.Length; int lengthOfRemovedString = removedString.Length; int startIndex = lengthOfSourceString - lengthOfRemovedString; string tempSubString = sourceString.Substring(startIndex); if (tempSubString.ToUpper() == removedString.ToUpper()) { result = sourceString.Remove(startIndex, lengthOfRemovedString); } return result; } catch { return sourceString; } } /// /// 获取拆分符右边的字符串 /// /// /// /// public static string RightSplit(string sourceString, char splitChar) { string result = null; string[] tempString = sourceString.Split(splitChar); if (tempString.Length > 0) { result = tempString[tempString.Length - 1].ToString(); } return result; } /// /// 获取拆分符左边的字符串 /// /// /// /// public static string LeftSplit(string sourceString, char splitChar) { string result = null; string[] tempString = sourceString.Split(splitChar); if (tempString.Length > 0) { result = tempString[0].ToString(); } return result; } /// /// 去掉最后一个逗号 /// /// /// public static string DelLastComma(string origin) { if (origin.IndexOf(",") == -1) { return origin; } return origin.Substring(0, origin.LastIndexOf(",")); } /// /// 删除不可见字符 /// /// /// public static string DeleteUnVisibleChar(string sourceString) { System.Text.StringBuilder sBuilder = new System.Text.StringBuilder(131); for (int i = 0; i < sourceString.Length; i++) { int Unicode = sourceString[i]; if (Unicode >= 16) { sBuilder.Append(sourceString[i].ToString()); } } return sBuilder.ToString(); } /// /// 获取数组元素的合并字符串 /// /// /// public static string GetArrayString(string[] stringArray) { string totalString = null; for (int i = 0; i < stringArray.Length; i++) { totalString = totalString + stringArray[i]; } return totalString; } /// /// 获取某一字符串在字符串数组中出现的次数 /// /// /// /// /// /// /// /// /// /// /// /// /// A int value... /// public static int GetStringCount(string[] stringArray, string findString) { int count = -1; string totalString = GetArrayString(stringArray); string subString = totalString; while (subString.IndexOf(findString) >= 0) { subString = totalString.Substring(subString.IndexOf(findString)); count += 1; } return count; } /// /// 获取某一字符串在字符串中出现的次数 /// /// /// /// 原字符串 /// /// /// /// /// 匹配字符串 /// /// /// /// 匹配字符串数量 /// public static int GetStringCount(string sourceString, string findString) { int count = 0; int findStringLength = findString.Length; string subString = sourceString; while (subString.IndexOf(findString) >= 0) { subString = subString.Substring(subString.IndexOf(findString) + findStringLength); count += 1; } return count; } /// /// 截取从startString开始到原字符串结尾的所有字符 /// /// /// /// /// /// /// /// /// /// /// /// /// A string value... /// public static string GetSubString(string sourceString, string startString) { try { int index = sourceString.ToUpper().IndexOf(startString); if (index > 0) { return sourceString.Substring(index); } return sourceString; } catch { return ""; } } public static string GetSubString(string sourceString, string beginRemovedString, string endRemovedString) { try { if (sourceString.IndexOf(beginRemovedString) != 0) beginRemovedString = ""; if (sourceString.LastIndexOf(endRemovedString, sourceString.Length - endRemovedString.Length) < 0) endRemovedString = ""; int startIndex = beginRemovedString.Length; int length = sourceString.Length - beginRemovedString.Length - endRemovedString.Length; if (length > 0) { return sourceString.Substring(startIndex, length); } return sourceString; } catch { return sourceString; ; } } /// /// 按字节数取出字符串的长度 /// /// 要计算的字符串 /// 字符串的字节数 public static int GetByteCount(string strTmp) { int intCharCount = 0; for (int i = 0; i < strTmp.Length; i++) { if (System.Text.UTF8Encoding.UTF8.GetByteCount(strTmp.Substring(i, 1)) == 3) { intCharCount = intCharCount + 2; } else { intCharCount = intCharCount + 1; } } return intCharCount; } /// /// 按字节数要在字符串的位置 /// /// 字符串的位置 /// 要计算的字符串 /// 字节的位置 public static int GetByteIndex(int intIns, string strTmp) { int intReIns = 0; if (strTmp.Trim() == "") { return intIns; } for (int i = 0; i < strTmp.Length; i++) { if (System.Text.UTF8Encoding.UTF8.GetByteCount(strTmp.Substring(i, 1)) == 3) { intReIns = intReIns + 2; } else { intReIns = intReIns + 1; } if (intReIns >= intIns) { intReIns = i + 1; break; } } return intReIns; } public static string CutRightString(string inputString, int len) { if (string.IsNullOrEmpty(inputString)) return string.Empty; var input = Reverse(inputString); var output = CutString(input, len); return Reverse(output); } /// /// 从包含中英文的字符串中截取固定长度的一段,inputString为传入字符串,len为截取长度(一个汉字占两个位)。 /// public static string CutString(string inputString, int len) { if (inputString == null || inputString == "") { return ""; } inputString = inputString.Trim(); byte[] myByte = System.Text.Encoding.Default.GetBytes(inputString); if (myByte.Length > len) { string result = ""; for (int i = 0; i < inputString.Length; i++) { byte[] tempByte = System.Text.Encoding.Default.GetBytes(result); if (tempByte.Length < len) { result += inputString.Substring(i, 1); } else { break; } } return result + "..."; } else { return inputString; } } /// /// 从包含中英文的字符串中截取固定长度的一段,inputString为传入字符串,len为截取长度(一个汉字占两个位)。 /// public static string CutString(string inputString, int len, string end) { inputString = inputString.Trim(); byte[] myByte = System.Text.Encoding.Default.GetBytes(inputString); if (myByte.Length > len) { string result = ""; for (int i = 0; i < inputString.Length; i++) { byte[] tempByte = System.Text.Encoding.Default.GetBytes(result); if (tempByte.Length < len) { result += inputString.Substring(i, 1); } else { break; } } return result + end; } else { return inputString; } } /// /// 去除文本中的html代码。 /// public static string RemoveHtml(string inputString) { return System.Text.RegularExpressions.Regex.Replace(inputString, @"<[^>]+>", ""); } /// /// 半角转全角(SBC case) /// /// 任意字符串 /// 全角字符串 /// ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 /// public static string ToSBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 32) { c[i] = (char)12288; continue; } if (c[i] < 127) c[i] = (char)(c[i] + 65248); } return new string(c); } /// /// 全角转半角(DBC case) /// /// 任意字符串 /// 半角字符串 /// ///全角空格为12288,半角空格为32 ///其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248 /// public static string ToDBC(string input) { char[] c = input.ToCharArray(); for (int i = 0; i < c.Length; i++) { if (c[i] == 12288) { c[i] = (char)32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char)(c[i] - 65248); } return new string(c); } public static string HtmlEncode(string str, bool encodeBlank = true) { if ((str == "") || (str == null)) return ""; StringBuilder builder1 = new StringBuilder(str); builder1.Replace("&", "&"); builder1.Replace("<", "<"); builder1.Replace(">", ">"); builder1.Replace("\"", """); builder1.Replace("'", "'"); builder1.Replace("\t", "    "); if (encodeBlank) builder1.Replace(" ", " "); builder1.Replace("\r", ""); builder1.Replace("\n\n", "


"); builder1.Replace("\n", "
"); return builder1.ToString(); } public static string TextEncode(string s) { StringBuilder builder1 = new StringBuilder(s); builder1.Replace("&", "&"); builder1.Replace("<", "<"); builder1.Replace(">", ">"); builder1.Replace("\"", """); builder1.Replace("'", "'"); return builder1.ToString(); } public static string Reverse(string s) { char[] charArray = s.ToCharArray(); Array.Reverse(charArray); return new string(charArray); } } }