有个需求需要将数据库字段转换成驼峰字段,在网上找了一会这方面的工具,
写代码嘛,有现成的最好,但发现都写的乱七八糟,
有的各种引用工具类,有的是正则匹配来匹配去最后给出的结果还不对。
于是自己写了一个,亲测没问题,代码如下,请自取,完全没有任何外部引用,也没有正则之类容易出错的语法:
/**
* 根据传入的带下划线的字符串转化为驼峰格式
*
* "NATION -> nation
* "HISTORY_OVERDUE -> historyOverdue
* "ID_CARD_INFO_TITLE -> idCardInfoTitle
* "ID_1_INFO_TITLE -> id1InfoTitle
* "A_123_INFO_TITLE -> a123InfoTitle
* "A_1_INFO_D_TITLE_B -> a1InfoDTitleB
* "A_1_INFO_TITLE_B_C -> a1InfoTitleBC
*
*/
public static String underlineToHump(String str) {
String[] array = str.toUpperCase().split("_");
StringBuilder result = new StringBuilder(array[0].toLowerCase());
if (array.length <= 1) {
return result.toString();
}
for (int i = 1; i < array.length; i++) {
result.append(array[i], 0, 1);
if (array[i].length() <= 1) {
continue;
}
result.append(array[i].substring(1).toLowerCase());
}
return result.toString();
}
public static void main(String[] args) {
System.out.println(underlineToHump("NATION"));
System.out.println(underlineToHump("HISTORY_OVERDUE"));
System.out.println(underlineToHump("ID_CARD_INFO_TITLE"));
System.out.println(underlineToHump("ID_1_INFO_TITLE"));
System.out.println(underlineToHump("A_123_INFO_TITLE"));
System.out.println(underlineToHump("A_1_INFO_D_TITLE_B"));
System.out.println(underlineToHump("A_1_INFO_TITLE_B_C"));
}
测试结果如下:
收工