Class Converter

java.lang.Object
org.ximinghui.common.util.naming.Converter

public class Converter extends Object
命名转换器
Since:
Common Util 3.12.0.1
Author:
Xi Minghui
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final String
    空字符串
    protected static final String[]
    空字符串数组
    protected static final String
    连字符
    protected static final String
    空格
    protected static final String
    下划线
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static String[]
    补全命名字符串成分空格
    static String
    convert(String naming, Convention format)
    转换命名字符串为给定的命名格式
    protected static String
    convertToStartCase(String[] components)
    将命名字符串转换为Start Case格式
    static String[]
    decompose(String naming)
    分解命名字符串
    protected static String[]
    分解驼峰(包括大小驼峰)命名字符串 一些示例 分解前分解后 a{a} A{A} io{io} Io{Io} IO{IO} url{url} Url{Url} URL{URL} aUrlName{a, Url, Name} aURLName{a, URL, Name} urlName{url, Name} UrlName{Url, Name} URLName{URL, Name} urlA{url, A} UrlA{Url, A} aUrlNameDescription{a, Url, Name, Description} aURLNameDescription{a, URL, Name, Description} thisIsAUrlNameDescription{this, Is, A, Url, Name, Description} thisIsAURLNameDescription{this, Is, A, URL, Name, Description} aUrlA{a, Url, A} aUrlB{a, Url, B} url2uri{url2uri} url2Uri{url, 2, Uri} url2URL{url, 2, URL} Url2uri{Url, 2, uri} Url2Uri{Url, 2, Uri} Url2URI{Url, 2, URI} URL2uri{URL, 2, uri} URL2Uri{URL, 2, Uri} URL2URI{URL2URI} log4j{log4j} LOG4J{LOG4J} i18n{i18n} I18n{I, 18, n} i18N{i, 18, N} i18ns{i18ns} i18Ns{i, 18, Ns} i18NS{i, 18, NS} I18ns{I, 18, ns} I18Ns{I, 18, Ns} I18NS{I18NS} myUrl值{my, Url, 值} myUrl地址{my, Url, 地址} myURL值{my, URL, 值} url转uri{url转uri} url转Uri{url, 转, Uri} url转URL{url, 转, URL} Url转uri{Url, 转, uri} Url转Uri{Url, 转, Uri} Url转URI{Url, 转, URI} URL转uri{URL, 转, uri} URL转Uri{URL, 转, Uri} URL转URI{URL转URI} url转为uri{url转为uri} url转为Uri{url, 转为, Uri} url转为URL{url, 转为, URL} Url转为uri{Url, 转为, uri} Url转为Uri{Url, 转为, Uri} Url转为URI{Url, 转为, URI} URL转为uri{URL, 转为, uri} URL转为Uri{URL, 转为, Uri} URL转为URI{URL转为URI}
    protected static boolean
    detectSplit(char[] chars, int i)
    判断指定索引处字符按驼峰命名公约是否应该切分
    protected static boolean
    判断命名字符串是否为全部大写或全部小写
    protected static String[]
    规范化命名字符串成分
    protected static String[]
    移除空白的命名字符串成分

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

    • Converter

      public Converter()
  • Method Details

    • convert

      public static String convert(String naming, Convention format)
      转换命名字符串为给定的命名格式
      Parameters:
      naming - 命名字符串
      format - 命名规则
      Returns:
      转换后的字符串
      Since:
      Common Util 3.12.0.1
    • decompose

      public static String[] decompose(String naming)
      分解命名字符串

      分解命名字符串成分的算法流程:

      1. 命名公约可简单分为自然语言使用和编程语言使用两类。两者的显著特点是自然语言使用空格分隔多个单词,而编程语言的标识符名字不包含空格。故第一步判断字符串是否包含空格;
      2. 若字符串包含空格,则按空格切分单词,流程结束。否则,进入下一步;
      3. 自然语言句子或单词间不会出现下划线字符,所以含下划线的字符串命名一定是类似蛇形命名、驼峰蛇形命名这样的以下划线为单词分隔符的命名公约。故该步判断字符串是否包含下划线;
      4. 若字符串包含下划线,则按下划线切分单词,流程结束。否则,进入下一步;
      5. 含连字符的字符串可能是类似烤串命名、HTTP头命名这样的以中划线为单词分隔符的命名公约,也可能是自然语言中类似“close-up”这样带连字符的单词(排除句子,含空格的句子已在前面匹配)。由于无法区分两种情况且后者出现概率很低,所以这里按前者处理。故该步判断字符串是否包含连字符;
      6. 若字符串包含连字符,则按连字符切分单词,流程结束。否则,进入下一步;
      7. 到这一步说明字符串为单个单元(或称单词),即字符串不包含空格、下划线、连字符。单个单元的字符串可能是驼峰命名、帕斯卡命名、大小写平坦命名(无法分解)或自然语言类命名(无法分辨)。故该步将命名判定为驼峰命名或帕斯卡命名;
      8. 做驼峰命名或帕斯卡命名分解,流程结束。
      Parameters:
      naming - 命名字符串
      Returns:
      命名字符串成分
      Since:
      Common Util 3.12.0.10
    • decomposeCamelCase

      protected static String[] decomposeCamelCase(String naming)
      分解驼峰(包括大小驼峰)命名字符串
      一些示例
      分解前分解后
      a{a}
      A{A}
      io{io}
      Io{Io}
      IO{IO}
      url{url}
      Url{Url}
      URL{URL}
      aUrlName{a, Url, Name}
      aURLName{a, URL, Name}
      urlName{url, Name}
      UrlName{Url, Name}
      URLName{URL, Name}
      urlA{url, A}
      UrlA{Url, A}
      aUrlNameDescription{a, Url, Name, Description}
      aURLNameDescription{a, URL, Name, Description}
      thisIsAUrlNameDescription{this, Is, A, Url, Name, Description}
      thisIsAURLNameDescription{this, Is, A, URL, Name, Description}
      aUrlA{a, Url, A}
      aUrlB{a, Url, B}
      url2uri{url2uri}
      url2Uri{url, 2, Uri}
      url2URL{url, 2, URL}
      Url2uri{Url, 2, uri}
      Url2Uri{Url, 2, Uri}
      Url2URI{Url, 2, URI}
      URL2uri{URL, 2, uri}
      URL2Uri{URL, 2, Uri}
      URL2URI{URL2URI}
      log4j{log4j}
      LOG4J{LOG4J}
      i18n{i18n}
      I18n{I, 18, n}
      i18N{i, 18, N}
      i18ns{i18ns}
      i18Ns{i, 18, Ns}
      i18NS{i, 18, NS}
      I18ns{I, 18, ns}
      I18Ns{I, 18, Ns}
      I18NS{I18NS}
      myUrl值{my, Url, 值}
      myUrl地址{my, Url, 地址}
      myURL值{my, URL, 值}
      url转uri{url转uri}
      url转Uri{url, 转, Uri}
      url转URL{url, 转, URL}
      Url转uri{Url, 转, uri}
      Url转Uri{Url, 转, Uri}
      Url转URI{Url, 转, URI}
      URL转uri{URL, 转, uri}
      URL转Uri{URL, 转, Uri}
      URL转URI{URL转URI}
      url转为uri{url转为uri}
      url转为Uri{url, 转为, Uri}
      url转为URL{url, 转为, URL}
      Url转为uri{Url, 转为, uri}
      Url转为Uri{Url, 转为, Uri}
      Url转为URI{Url, 转为, URI}
      URL转为uri{URL, 转为, uri}
      URL转为Uri{URL, 转为, Uri}
      URL转为URI{URL转为URI}
      Parameters:
      naming - 命名字符串
      Returns:
      命名字符串成分
      Since:
      Common Util 3.12.0.1
    • convertToStartCase

      protected static String convertToStartCase(String[] components)
      将命名字符串转换为Start Case格式

      对于该工具类,Start Case格式被设计为各命名格式转换的中间态

      Parameters:
      components - 命名字符串成分
      Returns:
      Capitalize Words命名格式
      Since:
      Common Util 3.12.0.1
    • normalizeComponents

      protected static String[] normalizeComponents(String[] components)
      规范化命名字符串成分

      移除所有命名成分中的空白元素,并将所有字母转为小写

      Parameters:
      components - 命名字符串成分
      Returns:
      规范化处理过的命名字符串成分
      Since:
      Common Util 3.12.0.10
    • removeBlankComponents

      protected static String[] removeBlankComponents(String[] components)
      移除空白的命名字符串成分
      Parameters:
      components - 命名字符串成分
      Returns:
      移除空白后的命名字符串成分
      Since:
      Common Util 3.12.0.10
    • completeComponentSpaces

      protected static String[] completeComponentSpaces(String[] components)
      补全命名字符串成分空格
      Parameters:
      components - 命名字符串成分
      Returns:
      补全空格后的命名字符串成分
      Since:
      Common Util 3.12.0.10
    • isAllLowerCaseOrUpperCase

      protected static boolean isAllLowerCaseOrUpperCase(String naming)
      判断命名字符串是否为全部大写或全部小写
      Parameters:
      naming - 命名字符串
      Returns:
      当命名字符串为全部大写或全部小写时返回true,否则返回false
      Since:
      Common Util 3.12.0.10
    • detectSplit

      protected static boolean detectSplit(char[] chars, int i)
      判断指定索引处字符按驼峰命名公约是否应该切分
      Parameters:
      chars - 字符数组
      i - 字符索引
      Returns:
      当应在指定索引处切分时返回true,否则返回false
      Since:
      Common Util 3.12.0.1