package com.github.ltsopensource.core.commons.utils;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author Robert HG (254963746@qq.com) on 6/7/15.
*/
public class CharacterUtils {
/**
* 下划线格式字符串转换成驼峰格式字符串
* eg: player_id -> playerId;<br>
* player_name -> playerName;
*/
public static String underScore2CamelCase(String strs) {
if (strs == null || !strs.contains("_")) {
return strs;
}
StringBuilder sb = new StringBuilder("");
String[] elems = strs.split("_");
for (int i = 0; i < elems.length; i++) {
String elem = elems[i].toLowerCase();
if (i != 0) {
char first = elem.toCharArray()[0];
sb.append((char) (first - 32)).append(elem.substring(1));
} else {
sb.append(elem);
}
}
return sb.toString();
}
/**
* @param param 待转换字符串
* 驼峰格式字符串 转换成 下划线格式字符串
* eg: playerId -> player_id;<br>
* playerName -> player_name;
*/
public static String camelCase2Underscore(String param) {
Pattern p = Pattern.compile("[A-Z]");
if (param == null || param.equals("")) {
return "";
}
StringBuilder builder = new StringBuilder(param);
Matcher mc = p.matcher(param);
int i = 0;
while (mc.find()) {
builder.replace(mc.start() + i, mc.end() + i, "_" + mc.group().toLowerCase());
i++;
}
if ('_' == builder.charAt(0)) {
builder.deleteCharAt(0);
}
return builder.toString();
}
}