Package org.ximinghui.common.util.naming
Class Converter
java.lang.Object
org.ximinghui.common.util.naming.Converter
命名转换器
- Since:
- Common Util 3.12.0.1
- Author:
- Xi Minghui
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected static String[]completeComponentSpaces(String[] components) 补全命名字符串成分空格static Stringconvert(String naming, Convention format) 转换命名字符串为给定的命名格式protected static StringconvertToStartCase(String[] components) 将命名字符串转换为Start Case格式static String[]分解命名字符串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}protected static booleandetectSplit(char[] chars, int i) 判断指定索引处字符按驼峰命名公约是否应该切分protected static booleanisAllLowerCaseOrUpperCase(String naming) 判断命名字符串是否为全部大写或全部小写protected static String[]normalizeComponents(String[] components) 规范化命名字符串成分protected static String[]removeBlankComponents(String[] components) 移除空白的命名字符串成分
-
Field Details
-
EMPTY_STRING
空字符串- See Also:
-
SPACE
空格- See Also:
-
UNDERSCORE
下划线- See Also:
-
HYPHEN
连字符- See Also:
-
EMPTY_STRING_ARRAY
空字符串数组
-
-
Constructor Details
-
Converter
public Converter()
-
-
Method Details
-
convert
转换命名字符串为给定的命名格式- Parameters:
naming- 命名字符串format- 命名规则- Returns:
- 转换后的字符串
- Since:
- Common Util 3.12.0.1
-
decompose
分解命名字符串分解命名字符串成分的算法流程:
- 命名公约可简单分为自然语言使用和编程语言使用两类。两者的显著特点是自然语言使用空格分隔多个单词,而编程语言的标识符名字不包含空格。故第一步判断字符串是否包含空格;
- 若字符串包含空格,则按空格切分单词,流程结束。否则,进入下一步;
- 自然语言句子或单词间不会出现下划线字符,所以含下划线的字符串命名一定是类似蛇形命名、驼峰蛇形命名这样的以下划线为单词分隔符的命名公约。故该步判断字符串是否包含下划线;
- 若字符串包含下划线,则按下划线切分单词,流程结束。否则,进入下一步;
- 含连字符的字符串可能是类似烤串命名、HTTP头命名这样的以中划线为单词分隔符的命名公约,也可能是自然语言中类似“close-up”这样带连字符的单词(排除句子,含空格的句子已在前面匹配)。由于无法区分两种情况且后者出现概率很低,所以这里按前者处理。故该步判断字符串是否包含连字符;
- 若字符串包含连字符,则按连字符切分单词,流程结束。否则,进入下一步;
- 到这一步说明字符串为单个单元(或称单词),即字符串不包含空格、下划线、连字符。单个单元的字符串可能是驼峰命名、帕斯卡命名、大小写平坦命名(无法分解)或自然语言类命名(无法分辨)。故该步将命名判定为驼峰命名或帕斯卡命名;
- 做驼峰命名或帕斯卡命名分解,流程结束。
- Parameters:
naming- 命名字符串- Returns:
- 命名字符串成分
- Since:
- Common Util 3.12.0.10
-
decomposeCamelCase
分解驼峰(包括大小驼峰)命名字符串一些示例 分解前 分解后 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
将命名字符串转换为Start Case格式对于该工具类,Start Case格式被设计为各命名格式转换的中间态
- Parameters:
components- 命名字符串成分- Returns:
- Capitalize Words命名格式
- Since:
- Common Util 3.12.0.1
-
normalizeComponents
规范化命名字符串成分移除所有命名成分中的空白元素,并将所有字母转为小写
- Parameters:
components- 命名字符串成分- Returns:
- 规范化处理过的命名字符串成分
- Since:
- Common Util 3.12.0.10
-
removeBlankComponents
移除空白的命名字符串成分- Parameters:
components- 命名字符串成分- Returns:
- 移除空白后的命名字符串成分
- Since:
- Common Util 3.12.0.10
-
completeComponentSpaces
补全命名字符串成分空格- Parameters:
components- 命名字符串成分- Returns:
- 补全空格后的命名字符串成分
- Since:
- Common Util 3.12.0.10
-
isAllLowerCaseOrUpperCase
判断命名字符串是否为全部大写或全部小写- 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
-