• C#如何实现把大驼峰命名转换成小驼峰命名法?
  • 发布于 1个月前
  • 76 热度
    0 评论
在 .NET 的世界中,一般习惯对公开的信息(类名、属性名、方法名等)使用大驼峰命名法(CamelCase)。比如常见的 Console 类型、Title 属性以及 WriteLine 方法。除了大驼峰命名法,常见的还有小驼峰命名法以及蛇形命名法。

小驼峰式命名法(lower camel case)
第一个单词以小写字母开始,第二个单词的首字母大写。例如:firstName、lastName。这种命名法在 JavaScript 中很常见,比如:
document.getElementsByTagName('body') 
蛇形命名法(snake case)
蛇形法是全由小写字母和下划线组成,在两个单词之间用下滑线连接。例如:first_name、last_name 。这种命名法在 PHP 中很常见,比如: 
function_exists()

使用 C# 将大驼峰转换为小驼峰或蛇形命名法
以下两个静态方法可以分别实现大驼峰到小驼峰和蛇形命名的转换:
/// <summary>
/// 堆代码 duidaima.com
/// 将大驼峰命名转为小驼峰命名
///</summary>
public static string RenameCamelCase(string str)
  {
    var firstChar = str[0];
    if(firstChar == char.ToLowerInvariant(firstChar))
    {
      return str;
    }
    var name = str.ToCharArray();
    name[0] = char.ToLowerInvariant(firstChar);
    return new String(name);
  }
  /// <summary>将大驼峰命名转为蛇形命名</summary>
public static string RenameSnakeCase(string str)
{
  var builder = new StringBuilder();
  var name = str;
  var previousUpper = false;
  for(var i = 0; i < name.Length; i++)
  {
    var c = name[i];
    if(char.IsUpper(c))
    {
      if(i > 0 && !previousUpper)
      {
        builder.Append("_");
      }
      builder.Append(char.ToLowerInvariant(c));
      previousUpper = true;
    }
    else
    {
      builder.Append(c);
      previousUpper = false;
    }
  }
  return builder.ToString();
}
测试代码:
Console.WriteLine(RenameCamelCase("CoderBusy"));//输出: coderBusy
Console.WriteLine(RenameSnakeCase("CoderBusy"));//输出: coder_busy



用户评论