本文主要是介绍Map中KEY去除下划线并首字母转换为大写工具类,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在运维旧项目时候,碰上sql查询结果只能返回List<Map>
,key为表单字段名,value为获取到的结果数据。
懒得一个一个敲出来,就直接写个方法转换,并赋值到相应实体对象里去。
- Map中KEY去除下划线并首字母转换为大写(通用)
private Map<String,Object> mapKeyToUpper(Map<String,Object> map){Map<String, Object> newMap = new HashMap<>();for (String key : map.keySet()) {StringBuilder newKey = new StringBuilder();boolean nextToUpper = false;for (int i = 0; i < key.length(); i++) {char c = key.charAt(i);newKey.append(nextToUpper?Character.toUpperCase(c):Character.toLowerCase(c));nextToUpper = ('_' == c)?true:false;}newMap.put(newKey.toString().replace("_",""), map.get(key));}return newMap;
}
- 实际使用示例
public List<Test> getInfos(){String sql = "select r.* from t_test r left join t_test_log sl on r.id = sl.bs_id";List<Map> results = testDao.findBySql(sql);List<Test> tests= new ArrayList<>();try {for (Map map : results) {Test rf = new Test();Map newMap = mapKeyToUpper(map);BeanUtils.populate(rf, newMap);tests.add(rf);}} catch (Exception e) {throw new RuntimeException(e);}return tests;
}
这篇关于Map中KEY去除下划线并首字母转换为大写工具类的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!