StringUtil.cs
上传用户:autodoor
上传日期:2022-08-04
资源大小:9973k
文件大小:7k
源码类别:

.net编程

开发平台:

Others

  1. using System;
  2. namespace qminoa.Common
  3. {
  4. /// <summary>
  5. /// 字符串操作工具集
  6. /// </summary>
  7. public class StringUtil
  8. {
  9. public StringUtil()
  10. {
  11. //
  12. // TODO: 在此处添加构造函数逻辑
  13. //
  14. }
  15. /// <summary>
  16. /// 从字符串中的尾部删除指定的字符串
  17. /// </summary>
  18. /// <param name="sourceString"></param>
  19. /// <param name="removedString"></param>
  20. /// <returns></returns>
  21. public static string Remove(string sourceString,string removedString)
  22. {
  23. try
  24. {
  25. if(sourceString.IndexOf(removedString)<0)
  26. throw new Exception("原字符串中不包含移除字符串!");
  27. string result = sourceString;
  28. int lengthOfSourceString = sourceString.Length;
  29. int lengthOfRemovedString = removedString.Length;
  30. int startIndex = lengthOfSourceString - lengthOfRemovedString;
  31. string tempSubString = sourceString.Substring(startIndex);
  32. if(tempSubString.ToUpper() == removedString.ToUpper())
  33. {
  34. result = sourceString.Remove(startIndex,lengthOfRemovedString);
  35. }
  36. return result;
  37. }
  38. catch
  39. {
  40. return sourceString;
  41. }
  42. }
  43. /// <summary>
  44. /// 获取拆分符右边的字符串
  45. /// </summary>
  46. /// <param name="sourceString"></param>
  47. /// <param name="splitChar"></param>
  48. /// <returns></returns>
  49. public static string RightSplit(string sourceString, char splitChar)
  50. {
  51. string result=null;
  52. string[] tempString = sourceString.Split(splitChar);
  53. if(tempString.Length >0)
  54. {
  55. result = tempString[tempString.Length-1].ToString();
  56. }
  57. return result;
  58. }
  59. /// <summary>
  60. /// 获取拆分符左边的字符串
  61. /// </summary>
  62. /// <param name="sourceString"></param>
  63. /// <param name="splitChar"></param>
  64. /// <returns></returns>
  65. public static string LeftSplit(string sourceString, char splitChar)
  66. {
  67. string result=null;
  68. string[] tempString = sourceString.Split(splitChar);
  69. if(tempString.Length >0)
  70. {
  71. result = tempString[0].ToString();
  72. }
  73. return result;
  74. }
  75. /// <summary>
  76. /// 去掉最后一个逗号
  77. /// </summary>
  78. /// <param name="origin"></param>
  79. /// <returns></returns>
  80. public static string DelLastComma(string origin)
  81. {
  82. if(origin.IndexOf(",") == -1)
  83. {
  84. return origin;
  85. }
  86. return origin.Substring(0,origin.LastIndexOf(","));
  87. }
  88. /// <summary>
  89. /// 删除不可见字符
  90. /// </summary>
  91. /// <param name="sourceString"></param>
  92. /// <returns></returns>
  93. public static string DeleteUnVisibleChar(string sourceString)
  94. {
  95. System.Text.StringBuilder sBuilder = new System.Text.StringBuilder(131);
  96. for(int i = 0;i < sourceString.Length; i++)
  97. {
  98. int Unicode = sourceString[i];
  99. if(Unicode >= 16)
  100. {
  101. sBuilder.Append(sourceString[i].ToString());
  102. }
  103. }
  104. return sBuilder.ToString();
  105. }
  106. /// <summary>
  107. /// 获取数组元素的合并字符串
  108. /// </summary>
  109. /// <param name="stringArray"></param>
  110. /// <returns></returns>
  111. public static string GetArrayString(string[] stringArray)
  112. {
  113. string totalString = null;
  114. for(int i=0;i<stringArray.Length;i++)
  115. {
  116. totalString = totalString + stringArray[i];
  117. }
  118. return totalString;
  119. }
  120. /// <summary>
  121. /// 获取某一字符串在字符串数组中出现的次数
  122. /// </summary>
  123. /// <param name="stringArray" type="string[]">
  124. ///     <para>
  125. ///         
  126. ///     </para>
  127. /// </param>
  128. /// <param name="findString" type="string">
  129. ///     <para>
  130. ///         
  131. ///     </para>
  132. /// </param>
  133. /// <returns>
  134. ///     A int value...
  135. /// </returns>
  136. public static int GetStringCount(string[] stringArray,string findString)
  137. {
  138. int count = -1;
  139. string totalString = GetArrayString(stringArray);
  140. string subString = totalString;
  141. while(subString.IndexOf(findString)>=0)
  142. {
  143. subString = totalString.Substring(subString.IndexOf(findString));
  144. count += 1;
  145. }
  146. return count;
  147. }
  148. /// <summary>
  149. ///     获取某一字符串在字符串中出现的次数
  150. /// </summary>
  151. /// <param name="stringArray" type="string">
  152. ///     <para>
  153. ///         原字符串
  154. ///     </para>
  155. /// </param>
  156. /// <param name="findString" type="string">
  157. ///     <para>
  158. ///         匹配字符串
  159. ///     </para>
  160. /// </param>
  161. /// <returns>
  162. ///     匹配字符串数量
  163. /// </returns>
  164. public static int GetStringCount(string sourceString,string findString)
  165. {
  166. int count = 0;
  167. int findStringLength = findString.Length;
  168. string subString = sourceString;
  169. while(subString.IndexOf(findString)>=0)
  170. {
  171. subString = subString.Substring(subString.IndexOf(findString)+findStringLength);
  172. count += 1;
  173. }
  174. return count;
  175. }
  176. /// <summary>
  177. /// 截取从startString开始到原字符串结尾的所有字符   
  178. /// </summary>
  179. /// <param name="sourceString" type="string">
  180. ///     <para>
  181. ///         
  182. ///     </para>
  183. /// </param>
  184. /// <param name="startString" type="string">
  185. ///     <para>
  186. ///         
  187. ///     </para>
  188. /// </param>
  189. /// <returns>
  190. ///     A string value...
  191. /// </returns>
  192. public static string GetSubString(string sourceString,string startString)
  193. {
  194. try
  195. {
  196. int index = sourceString.ToUpper().IndexOf(startString);
  197. if(index>0)
  198. {
  199. return sourceString.Substring(index);
  200. }
  201. return sourceString;
  202. }
  203. catch
  204. {
  205. return "";
  206. }
  207. }
  208. public static string GetSubString(string sourceString,string beginRemovedString,string endRemovedString)
  209. {
  210. try
  211. {
  212. if(sourceString.IndexOf(beginRemovedString)!=0)
  213. beginRemovedString = "";
  214. if(sourceString.LastIndexOf(endRemovedString,sourceString.Length - endRemovedString.Length)<0)
  215. endRemovedString = "";
  216.                 int startIndex = beginRemovedString.Length;
  217. int length     = sourceString.Length - beginRemovedString.Length - endRemovedString.Length ;
  218. if(length>0)
  219. {
  220. return sourceString.Substring(startIndex,length);
  221. }
  222. return sourceString;
  223. }
  224. catch
  225. {
  226. return sourceString;;
  227. }
  228. }
  229. /// <summary>
  230. /// 按字节数取出字符串的长度
  231. /// </summary>
  232. /// <param name="strTmp">要计算的字符串</param>
  233. /// <returns>字符串的字节数</returns>
  234. public static int GetByteCount(string strTmp)
  235. {
  236. int intCharCount=0;
  237. for(int i=0;i<strTmp.Length;i++)
  238. {
  239. if(System.Text.UTF8Encoding.UTF8.GetByteCount(strTmp.Substring(i,1))==3)
  240. {
  241. intCharCount=intCharCount+2;
  242. }
  243. else
  244. {
  245. intCharCount=intCharCount+1;
  246. }
  247. }
  248. return intCharCount;
  249. }
  250. /// <summary>
  251. /// 按字节数要在字符串的位置
  252. /// </summary>
  253. /// <param name="intIns">字符串的位置</param>
  254. /// <param name="strTmp">要计算的字符串</param>
  255. /// <returns>字节的位置</returns>
  256. public static int GetByteIndex(int intIns,string strTmp)
  257. {
  258. int intReIns=0;
  259. if(strTmp.Trim()=="")
  260. {
  261. return intIns;
  262. }
  263. for(int i=0;i<strTmp.Length;i++)
  264. {
  265. if(System.Text.UTF8Encoding.UTF8.GetByteCount(strTmp.Substring(i,1))==3)
  266. {
  267. intReIns=intReIns+2;
  268. }
  269. else
  270. {
  271. intReIns=intReIns+1;
  272. }
  273. if(intReIns>=intIns)
  274. {
  275. intReIns=i+1;
  276. break;
  277. }
  278. }
  279. return intReIns;
  280. }
  281. }
  282. }