String字符串工具类
字符串类(StringUtil.cs)#
1 using System; 2 3 namespace Sam.OA.Common 4 { 5 /// <summary> 6 /// 字符处理工具类 7 /// 作者:陈彦斌 8 /// 更新时间:2019年9月11日00:07:11 9 /// </summary> 10 [Serializable] 11 public static class StringUtil 12 { 13 /// <summary> 14 /// 判断字符对象为null或者为"" 15 /// </summary> 16 /// <param name="obj">字符对象</param> 17 /// <returns></returns> 18 public static bool isNullOrBlank(Object obj) 19 { 20 if (obj == null || obj.ToString().ToLower() == "null" || obj == DBNull.Value || obj.ToString().Trim() == "" || obj.ToString() == "undefined" || obj.ToString().Equals(decimal.MinValue.ToString())) 21 return true; 22 else 23 return false; 24 } 25 /// <summary> 26 /// 处理字符串 27 /// </summary> 28 /// <param name="obj">字符串</param> 29 /// <returns></returns> 30 public static string ProcessString(object obj) 31 { 32 return isNullOrBlank(obj) ? "null" : "'" + obj.ToString().Replace("--", "") + "'"; 33 } 34 /// <summary> 35 /// 判断字符串是否为日期 36 /// </summary> 37 /// <param name="strDate">日期字符串</param> 38 /// <returns></returns> 39 public static bool ObjectIsDate(object strDate) 40 { 41 try 42 { 43 DateTime.Parse(ProcessString(strDate)); 44 return true; 45 } 46 catch 47 { 48 return false; 49 } 50 } 51 /// <summary> 52 /// 判断字符串是否为decimal 53 /// </summary> 54 /// <param name="obj"></param> 55 /// <returns></returns> 56 public static bool IsDecimal(object obj) 57 { 58 try 59 { 60 decimal.Parse(obj.ToString().Trim()); 61 return true; 62 } 63 catch 64 { 65 return false; 66 } 67 } 68 /// <summary> 69 /// 对象是否为Null并返回三元运算符值 70 /// </summary> 71 /// <param name="obj">对象</param> 72 /// <returns></returns> 73 public static string ObjectIsNull(string obj) 74 { 75 try 76 { 77 return obj == null ? "" : obj.Replace(" ", ""); 78 } 79 catch (Exception ex) 80 { 81 return ""; 82 } 83 } 84 /// <summary> 85 /// 对象是否为空并返回三元运算符值 86 /// </summary> 87 /// <param name="obj">对象</param> 88 /// <returns></returns> 89 public static string ObjectIsBlank(string obj) 90 { 91 try 92 { 93 return obj.Replace(" ", "") == "" ? "" : obj.Replace(" ", ""); 94 } 95 catch (Exception ex) 96 { 97 return ""; 98 } 99 } 100 /// <summary> 101 /// 对象是否为Decimal并返回三元运算符值 102 /// </summary> 103 /// <param name="obj">对象</param> 104 /// <returns></returns> 105 public static decimal ObjectIsDecimal(object obj) 106 { 107 try 108 { 109 return Convert.ToDecimal(obj.ToString().Replace(" ", "") == "" ? "0" : obj); 110 } 111 catch (Exception ex) 112 { 113 return 0; 114 } 115 } 116 /// <summary> 117 /// 获取当前月的第一天 118 /// </summary> 119 /// <returns></returns> 120 public static DateTime GetFirstDayCurrentMonth() 121 { 122 try 123 { 124 return DateTime.Now.AddDays(1 - DateTime.Now.Day).Date; 125 } 126 catch (Exception ex) 127 { 128 throw ex; 129 } 130 } 131 /// <summary> 132 /// 获取当前月的最后一天 133 /// </summary> 134 /// <returns></returns> 135 public static DateTime GetLastDayCurrentMonth() 136 { 137 try 138 { 139 return DateTime.Now.AddDays(-DateTime.Now.Day).Date.AddMonths(1); 140 } 141 catch (Exception ex) 142 { 143 throw ex; 144 } 145 } 146 /// <summary> 147 /// 获取指定日期,在为一年中为第几周 148 /// </summary> 149 /// <param name="dtWeek">指定时间</param> 150 /// <reutrn>返回第几周,1-52周</reutrn> 151 private static int GetWeekOfYear(DateTime dtWeek) 152 { 153 System.Globalization.GregorianCalendar gc = new System.Globalization.GregorianCalendar(); 154 int weekOfYear = gc.GetWeekOfYear(dtWeek, System.Globalization.CalendarWeekRule.FirstDay, DayOfWeek.Monday); 155 return weekOfYear; 156 } 157 /// <summary> 158 /// 计算某日起始日期(礼拜一的日期) 159 /// </summary> 160 /// <param name="someDate">该周中任意一天</param> 161 /// <returns>返回礼拜一日期,无时分秒</returns> 162 public static string GetMondayDate(DateTime someDate) 163 { 164 int i = someDate.DayOfWeek - DayOfWeek.Monday; 165 if (i == -1) i = 6;// i值 > = 0 ,因为枚举原因,Sunday排在最前,此时Sunday-Monday=-1,必须+7=6。 166 TimeSpan ts = new TimeSpan(i, 0, 0, 0); 167 return someDate.Subtract(ts).ToShortDateString(); 168 } 169 /// <summary> 170 /// 计算某日结束日期(礼拜日的日期) 171 /// </summary> 172 /// <param name="someDate">该周中任意一天</param> 173 /// <returns>返回礼拜日日期,无时分秒</returns> 174 public static string GetSundayDate(DateTime someDate) 175 { 176 int i = someDate.DayOfWeek - DayOfWeek.Sunday; 177 if (i != 0) i = 7 - i;// 因为枚举原因,Sunday排在最前,相减间隔要被7减。 178 TimeSpan ts = new TimeSpan(i, 0, 0, 0); 179 return someDate.Add(ts).ToShortDateString(); 180 } 181 /// <summary> 182 /// 获取某月的天数 183 /// </summary> 184 /// <param name="someDate">日期</param> 185 /// <returns>当月的天数</returns> 186 public static int GetDaysInMonth(DateTime someDate) 187 { 188 return System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(someDate.Year, someDate.Month); 189 } 190 } 191 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)