StringHelper.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace Ropin.Inspection.Common.Helper
  7. {
  8. public class StringHelper
  9. {
  10. /// <summary>
  11. /// 根据分隔符返回前n条数据
  12. /// </summary>
  13. /// <param name="content">数据内容</param>
  14. /// <param name="separator">分隔符</param>
  15. /// <param name="top">前n条</param>
  16. /// <param name="isDesc">是否倒序(默认false)</param>
  17. /// <returns></returns>
  18. public static List<string> GetTopDataBySeparator(string content, string separator, int top, bool isDesc = false)
  19. {
  20. if (string.IsNullOrEmpty(content))
  21. {
  22. return new List<string>() { };
  23. }
  24. if (string.IsNullOrEmpty(separator))
  25. {
  26. throw new ArgumentException("message", nameof(separator));
  27. }
  28. var dataArray = content.Split(separator).Where(d => !string.IsNullOrEmpty(d)).ToArray();
  29. if (isDesc)
  30. {
  31. Array.Reverse(dataArray);
  32. }
  33. if (top > 0)
  34. {
  35. dataArray = dataArray.Take(top).ToArray();
  36. }
  37. return dataArray.ToList();
  38. }
  39. /// <summary>
  40. /// 根据字段拼接get参数
  41. /// </summary>
  42. /// <param name="dic"></param>
  43. /// <returns></returns>
  44. public static string GetPars(Dictionary<string, object> dic)
  45. {
  46. StringBuilder sb = new StringBuilder();
  47. string urlPars = null;
  48. bool isEnter = false;
  49. foreach (var item in dic)
  50. {
  51. sb.Append($"{(isEnter ? "&" : "")}{item.Key}={item.Value}");
  52. isEnter = true;
  53. }
  54. urlPars = sb.ToString();
  55. return urlPars;
  56. }
  57. /// <summary>
  58. /// 根据字段拼接get参数
  59. /// </summary>
  60. /// <param name="dic"></param>
  61. /// <returns></returns>
  62. public static string GetPars(Dictionary<string, string> dic)
  63. {
  64. StringBuilder sb = new StringBuilder();
  65. string urlPars = null;
  66. bool isEnter = false;
  67. foreach (var item in dic)
  68. {
  69. sb.Append($"{(isEnter ? "&" : "")}{item.Key}={item.Value}");
  70. isEnter = true;
  71. }
  72. urlPars = sb.ToString();
  73. return urlPars;
  74. }
  75. /// <summary>
  76. /// 获取一个GUID
  77. /// </summary>
  78. /// <param name="format">格式-默认为N</param>
  79. /// <returns></returns>
  80. public static string GetGUID(string format = "N")
  81. {
  82. return Guid.NewGuid().ToString(format);
  83. }
  84. /// <summary>
  85. /// 根据GUID获取19位的唯一数字序列
  86. /// </summary>
  87. /// <returns></returns>
  88. public static long GetGuidToLongID()
  89. {
  90. byte[] buffer = Guid.NewGuid().ToByteArray();
  91. return BitConverter.ToInt64(buffer, 0);
  92. }
  93. /// <summary>
  94. /// 根据GUID获取16位的唯一字符串
  95. /// </summary>
  96. /// <param name=\"guid\"></param>
  97. /// <returns></returns>
  98. public static string GuidTo16String(Guid guid)
  99. {
  100. long i = 1;
  101. foreach (byte b in guid.ToByteArray())
  102. i *= ((int)b + 1);
  103. return string.Format("{0:x}", i - DateTime.Now.Ticks);
  104. }
  105. /// <summary>
  106. /// 根据GUID获取19位的唯一数字序列
  107. /// </summary>
  108. /// <returns></returns>
  109. public static long GuidToLongID(Guid guid)
  110. {
  111. byte[] buffer = guid.ToByteArray();
  112. return BitConverter.ToInt64(buffer, 0);
  113. }
  114. /// <summary>
  115. /// 获取字符串最后X行
  116. /// </summary>
  117. /// <param name="resourceStr"></param>
  118. /// <param name="length"></param>
  119. /// <returns></returns>
  120. public static string GetCusLine(string resourceStr, int length)
  121. {
  122. string[] arrStr = resourceStr.Split("\r\n");
  123. return string.Join("", (from q in arrStr select q).Skip(arrStr.Length - length + 1).Take(length).ToArray());
  124. }
  125. #region 删除最后结尾的一个逗号
  126. /// <summary>
  127. /// 删除最后结尾的一个逗号
  128. /// </summary>
  129. public static string DelLastComma(string str)
  130. {
  131. if (str.Length < 1)
  132. {
  133. return "";
  134. }
  135. return str.Substring(0, str.LastIndexOf(","));
  136. }
  137. #endregion 删除最后结尾的一个逗号
  138. #region 删除最后结尾的指定字符后的字符
  139. /// <summary>
  140. /// 删除最后结尾的指定字符后的字符
  141. /// </summary>
  142. public static string DelLastChar(string str, string strchar)
  143. {
  144. if (string.IsNullOrEmpty(str))
  145. return "";
  146. if (str.LastIndexOf(strchar) >= 0 && str.LastIndexOf(strchar) == str.Length - 1)
  147. {
  148. return str.Substring(0, str.LastIndexOf(strchar));
  149. }
  150. return str;
  151. }
  152. #endregion 删除最后结尾的指定字符后的字符
  153. #region 删除最后结尾的一个逗号及字符
  154. /// <summary>
  155. /// 删除最后结尾的一个逗号
  156. /// </summary>
  157. public static string DelLastCommaStr(string str)
  158. {
  159. if (str.Length < 1)
  160. {
  161. return "";
  162. }
  163. return str.Substring(0, str.LastIndexOf(","));
  164. }
  165. #endregion 删除最后结尾的一个逗号
  166. }
  167. }