下划线大小写转换

import org.springframework.util.StringUtils;

/**
 * 下划线大小写互转
 *
 * @author jiaohongtao
 * @version 1.0
 * @since 2020年08月10日
 */
public class FieldToColumn {
	/**
     * 大写转小写下划线
     * @param filed 字符串
     */
    public static String fieldToColumn(String filed) {
        if (StringUtils.isEmpty(filed)) {
            return "";
        } else {
            StringBuilder builder = new StringBuilder(filed);
            int count = 0;
            builder.replace(0, 1, (filed.charAt(0) + "").toLowerCase());

            for (int i = 1; i < filed.length(); ++i) {
                char c = filed.charAt(i);
                if (c >= 'A' && c <= 'Z') {
                    builder.replace(i + count, i + count + 1, (c + "").toLowerCase());
                    builder.insert(i + count, "_");
                    ++count;
                }
            }
            return builder.toString();
        }
    }

    /**
     * 首字母大写
     *
     * @param filed 对应字符串
     */
    public static String firstCharacterToUpper(String filed) {
        return filed.substring(0, 1).toUpperCase() + filed.substring(1);
    }

    /**
     * 替换字符串并让它的下一个字母为大写
     *
     * @param filed   对应字符串
     * @param split   分隔符
     * @param replace 替换字符
     */
    public static String replaceUnderlineAndFirstToUpper(String filed, String split, String replace) {
        StringBuilder newString = new StringBuilder();
        int first;
        while (filed.contains(split)) {
            first = filed.indexOf(split);
            System.out.println("分隔符位置:" + first);
            if (first != filed.length()) {
                newString.append(filed, 0, first).append(replace);
                System.out.println("当前newString拼接为:" + newString);
                filed = filed.substring(first + split.length());
                filed = firstCharacterToUpper(filed);
            }
        }
        newString.append(filed);
        return newString.toString();
    }


    public static void main(String[] args) {
        System.out.println(fieldToColumn("abcdAbC"));
        System.out.println(replaceUnderlineAndFirstToUpper("abc_ef_g_h", "_", ""));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值