JAVA驼峰和下划线转换

由于公司业务需要,大数据跑批筛选数据生成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);
        }
    }
}
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页