美文网首页
实现-驼峰和下划线的转换 工具类

实现-驼峰和下划线的转换 工具类

作者: 光小月 | 来源:发表于2020-01-04 22:43 被阅读0次

解决驼峰法与下划线转换的问题

先说一下为啥需要自己写一个呢,不能用guava提供的CaseFormat工具类? 因为guava提供的CaseFormat只可以针对大写字母转下划线这种情况,无法处理数字需要转换的情况,如法处理字符串最前面与最后面是数字的情况。 所以这里需要重新一下。

CaseFormat方式

CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "testdata")

驼峰法转换工具

 public static String underscoreToCamelCase(String underscore){
        String[] ss = underscore.split("_");
        if(ss.length ==1){
            return underscore;
        }
        StringBuffer sb = new StringBuffer();
        sb.append(ss[0]);
        for (int i = 1; i < ss.length; i++) {
            sb.append(upperFirstCase(ss[i]));
        }
        return sb.toString();
}
 private static String upperFirstCase(String str) {
        char[] chars = str.toCharArray();
        chars[0] -= 32;
        return String.valueOf(chars);
    }

**
     * 驼峰 转下划线
     * @param camelCase
     * @return
     */
    public static String toLine(String camelCase){
        Pattern humpPattern = Pattern.compile("[A-Z]");
        Matcher matcher = humpPattern.matcher(camelCase);
        StringBuffer sb = new StringBuffer();
        while(matcher.find()){
            matcher.appendReplacement(sb, "_"+matcher.group(0).toLowerCase());
        }
        matcher.appendTail(sb);
        return sb.toString();
    }

matcher.find()与matcher.match()的区别

find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。
matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。

find()与group()在驼峰法转换问题上得到应用。

实现-驼峰和下划线的转换 工具类
Guava之CaseFormat

相关文章

网友评论

      本文标题:实现-驼峰和下划线的转换 工具类

      本文链接:https://www.haomeiwen.com/subject/zcdugctx.html