ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

使用java流式API【 下划线转驼峰】和【驼峰转下划线】

2026/9/15 3:19:36 拓冰建站 浏览量
使用java流式API【 下划线转驼峰】和【驼峰转下划线】

使用java流式API【 下划线转驼峰】和【驼峰转下划线】

  • 使用java流式API【 下划线转驼峰】和【驼峰转下划线】
    • 下划线转驼峰
    • 驼峰转下划线
    • 测试

使用java流式API【 下划线转驼峰】和【驼峰转下划线】

下划线转驼峰

  /*** 下划线转驼峰* @param str*/public static String  underscoreToCamelCase(String str){Objects.requireNonNull(str,"str参数不能为空!");String result = Arrays.stream(str.split("_")).map(word -> StringUtils.capitalize(word.toLowerCase())).collect(Collectors.joining());return StringUtils.uncapitalize(result);}

驼峰转下划线

 /*** 驼峰转下划线* @param str*/public static String camelCaseToUnderscore(String str) {Objects.requireNonNull(str,"str参数不能为空!");// 将驼峰式命名的字符串分割成字符数组char[] chars = str.toCharArray();// 使用Java 8流处理:找出非首字母的大写字母位置List<Integer> upperCaseIndexList = IntStream.range(0, chars.length).filter(i -> i > 0 && Character.isUpperCase(chars[i])).boxed().collect(Collectors.toList());// 根据大写字母的位置插入下划线,并将下划线转为小写String result = IntStream.range(0, chars.length).mapToObj(i -> (i > 0 && upperCaseIndexList.stream().anyMatch(index -> index.intValue() == i))?"_" + Character.toLowerCase(chars[i]):Character.toString(chars[i]) ).collect(Collectors.joining());//将首字母转为小写return StringUtils.uncapitalize(result);}

测试

  public static void main(String[] args) {//不足两位左边添0for (int i = 1; i <=10; i++) {String s = StringUtils.leftPad(i+"", 2, "0");System.out.println(s);}//隐藏手机号中间4位System.out.println(StringUtils.replace("15914305028",StringUtils.mid("15914305028", 3, 4),"****"));System.out.println(StringUtils.replace("15914305028",StringUtils.substring("15914305028",3,7),"****"));//overlay 覆盖的意思System.out.println(StringUtils.overlay("15914305028", "****", 3, 7));System.out.println(camelCaseToUnderscore("CamelCaseToUnderscore"));}