Class OpenNaming

java.lang.Object
cloud.opencode.base.string.OpenNaming

public final class OpenNaming extends Object
Naming Convention Facade Utility 命名转换门面工具类

Provides convenient methods for converting between different naming conventions.

提供在不同命名约定之间转换的便捷方法。

Features | 主要功能:

  • 9 naming style conversions - 9种命名风格转换
  • Auto-detection of naming style - 命名风格自动检测
  • Database/Java naming conversion - 数据库/Java命名转换
  • Word splitting and joining - 单词分割和连接

Usage Examples | 使用示例:

// Convert to camelCase
String camel = OpenNaming.toCamelCase("get_user_name"); // "getUserName"

// Convert to snake_case
String snake = OpenNaming.toSnakeCase("getUserName"); // "get_user_name"

// Database to Java
String className = OpenNaming.tableToClass("sys_user"); // "SysUser"
String fieldName = OpenNaming.columnToField("user_name"); // "userName"

// Java to Database
String tableName = OpenNaming.classToTable("UserInfo"); // "user_info"
String columnName = OpenNaming.fieldToColumn("userName"); // "user_name"

Performance | 性能:

  • Time complexity: O(n) - 时间复杂度: O(n)
  • Space complexity: O(n) - 空间复杂度: O(n)

Security | 安全性:

  • Thread-safe: Yes - 线程安全: 是
  • Null-safe: Yes - 空值安全: 是
Since:
JDK 25, opencode-base-string V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • toCamelCase

      public static String toCamelCase(String name)
      Convert to camelCase (first letter lowercase). 转换为驼峰命名(首字母小写)。

      Examples | 示例:

      toCamelCase("get_user_name") = "getUserName"
      toCamelCase("GetUserName")   = "getUserName"
      toCamelCase("get-user-name") = "getUserName"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      camelCase string | 驼峰命名字符串
    • toPascalCase

      public static String toPascalCase(String name)
      Convert to PascalCase (first letter uppercase). 转换为帕斯卡命名(首字母大写)。

      Examples | 示例:

      toPascalCase("get_user_name") = "GetUserName"
      toPascalCase("getUserName")   = "GetUserName"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      PascalCase string | 帕斯卡命名字符串
    • toSnakeCase

      public static String toSnakeCase(String name)
      Convert to snake_case (underscore separated lowercase). 转换为蛇形命名(下划线分隔小写)。

      Examples | 示例:

      toSnakeCase("getUserName") = "get_user_name"
      toSnakeCase("GetUserName") = "get_user_name"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      snake_case string | 蛇形命名字符串
    • toUpperSnakeCase

      public static String toUpperSnakeCase(String name)
      Convert to UPPER_SNAKE_CASE (constant naming). 转换为大写蛇形命名(常量命名)。

      Examples | 示例:

      toUpperSnakeCase("maxRetryCount") = "MAX_RETRY_COUNT"
      toUpperSnakeCase("max-retry-count") = "MAX_RETRY_COUNT"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      UPPER_SNAKE_CASE string | 大写蛇形命名字符串
    • toKebabCase

      public static String toKebabCase(String name)
      Convert to kebab-case (hyphen separated). 转换为短横线命名。

      Examples | 示例:

      toKebabCase("getUserName") = "get-user-name"
      toKebabCase("get_user_name") = "get-user-name"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      kebab-case string | 短横线命名字符串
    • toDotCase

      public static String toDotCase(String name)
      Convert to dot.case. 转换为点分隔命名。

      Examples | 示例:

      toDotCase("getUserName") = "get.user.name"
      toDotCase("get_user_name") = "get.user.name"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      dot.case string | 点分隔命名字符串
    • toPathCase

      public static String toPathCase(String name)
      Convert to path/case. 转换为路径命名。

      Examples | 示例:

      toPathCase("UserController") = "user/controller"
      toPathCase("user_controller") = "user/controller"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      path/case string | 路径命名字符串
    • toTitleCase

      public static String toTitleCase(String name)
      Convert to Title Case (space separated, each word capitalized). 转换为标题形式(空格分隔,每个单词首字母大写)。

      Examples | 示例:

      toTitleCase("getUserName") = "Get User Name"
      toTitleCase("get_user_name") = "Get User Name"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      Title Case string | 标题形式字符串
    • toSentenceCase

      public static String toSentenceCase(String name)
      Convert to Sentence case (space separated, first word capitalized). 转换为句子形式(空格分隔,首词首字母大写)。

      Examples | 示例:

      toSentenceCase("getUserName") = "Get user name"
      toSentenceCase("get_user_name") = "Get user name"
      
      Parameters:
      name - the name to convert | 要转换的名称
      Returns:
      Sentence case string | 句子形式字符串
    • convert

      public static String convert(String name, NamingCase from, NamingCase to)
      Convert naming style. 转换命名风格。
      Parameters:
      name - the name to convert | 要转换的名称
      from - source naming case | 源命名风格
      to - target naming case | 目标命名风格
      Returns:
      converted string | 转换结果
    • convert

      public static String convert(String name, NamingCase to)
      Auto-detect and convert to target naming style. 自动检测并转换为目标命名风格。
      Parameters:
      name - the name to convert | 要转换的名称
      to - target naming case | 目标命名风格
      Returns:
      converted string | 转换结果
    • detect

      public static NamingCase detect(String name)
      Detect naming case of a string. 检测字符串的命名风格。
      Parameters:
      name - the name to detect | 要检测的名称
      Returns:
      detected naming case | 检测到的命名风格
    • splitWords

      public static String[] splitWords(String name)
      Split compound name into words. 将复合名称分割为单词。

      Examples | 示例:

      splitWords("getUserName")   = ["get", "User", "Name"]
      splitWords("get_user_name") = ["get", "user", "name"]
      
      Parameters:
      name - the compound name | 复合名称
      Returns:
      array of words | 单词数组
    • joinWords

      public static String joinWords(String[] words, NamingCase case_)
      Join words with naming case. 使用命名风格连接单词。
      Parameters:
      words - words to join | 要连接的单词
      case_ - naming case | 命名风格
      Returns:
      joined string | 连接结果
    • tableToClass

      public static String tableToClass(String tableName)
      Convert database table name to Java class name. 将数据库表名转换为Java类名。

      Examples | 示例:

      tableToClass("sys_user")      = "SysUser"
      tableToClass("user_info")     = "UserInfo"
      tableToClass("t_order_item")  = "TOrderItem"
      
      Parameters:
      tableName - database table name | 数据库表名
      Returns:
      Java class name | Java类名
    • columnToField

      public static String columnToField(String columnName)
      Convert database column name to Java field name. 将数据库字段名转换为Java属性名。

      Examples | 示例:

      columnToField("user_name")    = "userName"
      columnToField("created_at")   = "createdAt"
      columnToField("is_deleted")   = "isDeleted"
      
      Parameters:
      columnName - database column name | 数据库字段名
      Returns:
      Java field name | Java属性名
    • classToTable

      public static String classToTable(String className)
      Convert Java class name to database table name. 将Java类名转换为数据库表名。

      Examples | 示例:

      classToTable("UserInfo")    = "user_info"
      classToTable("OrderItem")   = "order_item"
      classToTable("SysUser")     = "sys_user"
      
      Parameters:
      className - Java class name | Java类名
      Returns:
      database table name | 数据库表名
    • fieldToColumn

      public static String fieldToColumn(String fieldName)
      Convert Java field name to database column name. 将Java属性名转换为数据库字段名。

      Examples | 示例:

      fieldToColumn("userName")   = "user_name"
      fieldToColumn("createdAt")  = "created_at"
      fieldToColumn("isDeleted")  = "is_deleted"
      
      Parameters:
      fieldName - Java field name | Java属性名
      Returns:
      database column name | 数据库字段名
    • classToPath

      public static String classToPath(String className)
      Convert Java class name to URL path. 将Java类名转换为URL路径。

      Examples | 示例:

      classToPath("UserController")    = "user/controller"
      classToPath("OrderItemService")  = "order/item/service"
      
      Parameters:
      className - Java class name | Java类名
      Returns:
      URL path | URL路径