package com.nis.util;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Set;
public class FormatUtils {
/**
* 将List<HashMap<String,Object>>中HashMap的key全部转化为变量形式,
* 如{"BRH_ID":"1234","BRH_NAME":"机构"}改为{"brhId":"1234","brhName":"机构"}
*
* @param list
* @return
*/
public static List> formatHashMapKeyInList(
List> list) {
List result = new ArrayList();
// 遍历list后进行格式化列表元素
if (list!=null){
for (HashMap h : list) {
// 将hashMap的key转化为驼峰格式,如{"BRH_ID":"1234"}改为{"brhId":"1234"}
result.add(formatHashMapKey(h));
}
}
return result;
}
/**
* 将hashMap的key转化为驼峰格式,如{"BRH_ID":"1234","BRH_NAME":"机构"}改为{"brhId":"1234",
* "brhName":"机构"}
*
* @param hashMap
* @return
*/
public static HashMap formatHashMapKey(
HashMap hashMap) {
HashMap result = new HashMap();
String key = null;
// 遍历map
for (Entry e : (Set>) hashMap.entrySet()) {
key = (String) e.getKey();
// 将hashMap的key转化为驼峰格式
key = formatDBNameToVarName(key);
// 封装为新的map
result.put(key, e.getValue());
}
// 返回格式化后的map
return result;
}
/**
* 数据库列名转化为属性名,如DEAL_ID=dealId;
* 不能保证完全正确,如DBUTIL不会智能的转化为DBUtil,而会转化为dbutil,
* 规则为全部转化为单词,然后首字母小写
*
* @param DBName
* @return
*/
public static String formatDBNameToVarName(String DBName) {
StringBuilder result = new StringBuilder("");
// 以"_"分割
String[] DBNameArr = DBName.split("_");
for (int i = 0, j = DBNameArr.length; i < j; i++) {
// 获取以"_"分割后的字符数组的每个元素的第一个字母,
result.append(DBNameArr[i].charAt(0));
// 将其他字符转换成小写
result.append(DBNameArr[i].substring(1).toLowerCase());
}
char c0 = result.charAt(0);
if (c0 >= 'A' && c0 <= 'Z')
c0 = (char) (c0 + 'a' - 'A');
result.setCharAt(0, c0);
return result.toString();
}
}