由于公司业务需要,大数据跑批筛选数据生成CSV文件放到sftp服务器,然后这边定时拉取文件解析数据进行入库并推送到下游 读取的数据字段名是数据库字段,下划线格式的,需要转换为驼峰的,所以写了一个小小的工具类。 private static final String SPLIT_SYMBOL = "_";
/** * Created by Li hongxin on 2019/6/19 17:44 * Desc : 下划线格式转换为驼峰格式 * fileNames 要进行转换的数据 * beanFieldsName 要转换到对象的对象名 * @returns 返回驼峰格式的数据 */ private static void toCamelCase(ArrayList<String> fieldNames) { if (CollectionUtils.isEmpty(fieldNames)) { return; } for (int i = 0; i < fieldNames.size(); i++) { String fieldName = fieldNames.get(i); if (StringValidate.isNotBlank(fieldName)) { fieldName = fieldName.toLowerCase(); if (fieldName.contains(SPLIT_SYMBOL)) { String[] split = fieldName.split(SPLIT_SYMBOL); String temp = split[0]; for (int j = 1; j < split.length; j++) { String str = split[j]; temp = temp + str.substring(0, 1).toUpperCase() + str.substring(1, str.length()); } fieldName = temp; } //使用驼峰格式替换下划线格式 fieldNames.set(i, fieldName); } } } //去驼峰,转为下划线 private static void deCamelCase(ArrayList<String> fieldNames) { if (CollectionUtils.isEmpty(fieldNames)) { return; } for (int i = 0; i < fieldNames.size(); i++) { String fieldName = fieldNames.get(i); if (StringValidate.isNotBlank(fieldName)) { //去空格 fieldName = fieldName.replace(" ", ""); //逐个字符遍历 StringBuilder sb = new StringBuilder(16); for (Character chr : fieldName.toCharArray()) { if (Character.isLetter(chr)) { if (Character.isUpperCase(chr)) { chr = Character.toLowerCase(chr); sb.append(SPLIT_SYMBOL).append(chr); } else { sb.append(chr); } } else { sb.append(chr); } } fieldName = sb.toString().toUpperCase(); //使用驼峰格式替换下划线格式 fieldNames.set(i, fieldName); } } }