diff --git a/Infrastructure/Extensions/StringExtension.cs b/Infrastructure/Extensions/StringExtension.cs index 60315e2..46c1baa 100644 --- a/Infrastructure/Extensions/StringExtension.cs +++ b/Infrastructure/Extensions/StringExtension.cs @@ -39,7 +39,72 @@ namespace Infrastructure.Extensions { 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..]; + } + } }