using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; namespace Infrastructure.Extensions { public static class StringExtension { /// /// SQL条件拼接 /// /// /// /// public static string If(this string str, bool condition) { return condition ? str : string.Empty; } /// /// 判断是否为空 /// /// /// public static bool IfNotEmpty(this string str) { return !string.IsNullOrEmpty(str); } /// /// 注意:如果替换的旧值中有特殊符号,替换将会失败,解决办法 例如特殊符号是“(”: 要在调用本方法前加oldValue=oldValue.Replace("(","//("); /// /// /// /// /// public static string ReplaceFirst(this string input, string oldValue, string newValue) { Regex regEx = new Regex(oldValue, RegexOptions.Multiline); return regEx.Replace(input, newValue == null ? "" : newValue, 1); } /// /// 骆驼峰转下划线 /// /// /// public static string ToSmallCamelCase(string name) { var stringBuilder = new StringBuilder(); stringBuilder.Append(name.Substring(0, 1).ToLower()); for (var i = 0; i < name.Length; i++) { if (i == 0) { stringBuilder.Append(name.Substring(0, 1).ToLower()); } else { if (name[i] >= 'A' && name[i] <= 'Z') { stringBuilder.Append($"_{name.Substring(i, 1).ToLower()}"); } else { stringBuilder.Append(name[i]); } } } return stringBuilder.ToString(); } /// /// 下划线命名转驼峰命名 /// /// /// public static string UnderScoreToCamelCase(this string underscore) { string[] ss = underscore.Split("_"); if (ss.Length == 1) { return underscore; } StringBuilder sb = new StringBuilder(); sb.Append(ss[0]); for (int i = 1; i < ss.Length; i++) { sb.Append(ss[i].FirstUpperCase()); } return sb.ToString(); } /// /// 首字母转大写 /// /// /// public static string FirstUpperCase(this string str) { return string.IsNullOrEmpty(str) ? str : str.Substring(0, 1).ToUpper() + str[1..]; } /// /// 首字母转小写 /// /// /// public static string FirstLowerCase(this string str) { return string.IsNullOrEmpty(str) ? str : str.Substring(0, 1).ToLower() + str[1..]; } /// /// 截取指定字符串中间内容 /// /// /// /// /// public static string SubstringBetween(this string sourse, string startstr, string endstr) { string result = string.Empty; int startindex, endindex; try { startindex = sourse.IndexOf(startstr); if (startindex == -1) return result; string tmpstr = sourse.Substring(startindex + startstr.Length); endindex = tmpstr.IndexOf(endstr); if (endindex == -1) return result; result = tmpstr.Remove(endindex); } catch (Exception ex) { Console.WriteLine("MidStrEx Err:" + ex.Message); } return result; } } }