下面列出了org.apache.commons.lang3.StringUtils#splitByCharacterTypeCamelCase ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* 驼峰转下划线
*
* @param value 待转换值
* @return 结果
*/
public static String camelToUnderscore(String value) {
if (StringUtils.isBlank(value)) {
return value;
}
String[] arr = StringUtils.splitByCharacterTypeCamelCase(value);
if (arr.length == 0) {
return value;
}
StringBuilder result = new StringBuilder();
IntStream.range(0, arr.length).forEach(i -> {
if (i != arr.length - 1) {
result.append(arr[i]).append("_");
} else {
result.append(arr[i]);
}
});
return StringUtils.lowerCase(result.toString());
}
private List<String> fromName(final AccessSymbol accessSymbol) {
final Set<String> names = new HashSet<>(4);
String name = accessSymbol.name;
if (name.startsWith("get")) {
name = name.substring(3);
}
// add simpleName
final String uncapitalize = StringUtils.uncapitalize(name);
final String[] strings = StringUtils.splitByCharacterTypeCamelCase(uncapitalize);
final List<String> nameList = new ArrayList<>(Arrays.asList(strings));
addName(names, nameList);
names.add(uncapitalize);
// add scope + simpleName
final String scope = accessSymbol.scope;
if (!scope.isEmpty() && !StringUtils.containsAny(scope, "(", ".", "$")) {
//
final String scopeName = StringUtils.uncapitalize(scope) + StringUtils.capitalize(name);
names.add(scopeName);
}
return new ArrayList<>(names);
}
public MTable<T> withProperties(String... visibleProperties) {
if (isContainerInitialized()) {
bic.setContainerPropertyIds(visibleProperties);
setVisibleColumns((Object[]) visibleProperties);
} else {
pendingProperties = visibleProperties;
for (String string : visibleProperties) {
addContainerProperty(string, String.class, "");
}
}
for (String visibleProperty : visibleProperties) {
String[] parts = StringUtils.splitByCharacterTypeCamelCase(
visibleProperty);
parts[0] = StringUtils.capitalize(parts[0]);
for (int i = 1; i < parts.length; i++) {
parts[i] = parts[i].toLowerCase();
}
String saneCaption = StringUtils.join(parts, " ");
setColumnHeader(visibleProperty, saneCaption);
}
return this;
}
/**
* 驼峰转下划线
*
* @param name
* @param upCase
* @return
*/
public static String camelCaseToSnakeCase(String name, boolean upCase) {
String[] split = StringUtils.splitByCharacterTypeCamelCase(name);
Stream<String> stream = Arrays.stream(split);
if (upCase) {
stream = stream.map(String::toUpperCase);
} else {
stream = stream.map(String::toLowerCase);
}
return stream.collect(Collectors.joining("_"));
}
/**
* 首个单词转小写
*
* @param name
* @return
*/
public static String lowerFirstWord(String name) {
String[] split = StringUtils.splitByCharacterTypeCamelCase(name);
if(ArrayUtils.isEmpty(split)){
return name;
}
split[0] = split[0].toLowerCase();
return Arrays.stream(split)
.collect(Collectors.joining(""));
}
/**
* 构建默认多对多外键别名
*
* @param className
* @param forSql
* @return
*/
public static String buildDefaultMtmFkAlias(String className, boolean forSql) {
String alias = SwitchCaseUtil.lowerFirstWord(className) + "Id";
if (forSql) {
String[] split = StringUtils.splitByCharacterTypeCamelCase(alias);
String join = Joiner.on("_").join(split);
alias = join.toLowerCase();
}
return alias;
}
public static String humanize(String s) {
String[] strings = StringUtils.splitByCharacterTypeCamelCase(s);
for (int i = 0; i < strings.length; i++) {
String string = strings[i];
strings[i] = string.toLowerCase();
}
return StringUtils.join(strings, " ");
}
public static String getDerivedPath(String className) {
String[] resourceClassName = StringUtils.splitByCharacterTypeCamelCase(
className.substring(className.lastIndexOf(".") + 1));
return "/" + resourceClassName[0].toLowerCase();
}
private static String getDerivedPath(String className) {
String[] resourceClassName = StringUtils.splitByCharacterTypeCamelCase(
className.substring(className.lastIndexOf(".") + 1));
return "/" + resourceClassName[0].toLowerCase();
}
private static String[] toWordArray(String camelCaseString) {
String[] wordsArray = StringUtils.splitByCharacterTypeCamelCase(camelCaseString);
return wordsArray;
}