Java字符串驼峰与下换线格式转换如何实现

 更新时间:2020年11月09日 09:36:38   作者:羊37  
这篇文章主要介绍了Java字符串驼峰与下换线格式转换如何实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

下面是自己写的三个方法,直接类名.方法即可调用,注意此处未做异常处理.

1.下划线转驼峰 lowerLineToHump()

2.首字母大写 capitalizeTheFirstLetter()

3.驼峰转下划线 humpToLowerLine()

package yang.demo.justwrite;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @Description: 变量名转换
 * @Class: VariableNameConversion
 * @Author: Yiang37
 * @Date: 2020/11/3 15:23
 * @Version: 1.0
 */
public class VariableNameConversion {

  private static Pattern humpPattern = Pattern.compile("[A-Z]");

  public static void main(String[] args) {

    System.out.println(lowerLineToHump("NAME_AND_addREsS"));
    System.out.println(capitalizeTheFirstLetter("nAMe"));
    System.out.println(humpToLowerLine("nameAndAddress"));

  }

  /**
   * @Description: 下划线格式 -> 驼峰 大小写均可
   * <p>
   * NAME_AND_ADDRESS -> nameAndAddress
   * @Author: Yiang37
   * @Date: 2020/11/03 15:26:02
   * @Version: 1.0
   * @method: lowerLineAndUppercaseToHump()
   * @param: [Big_]
   * @return: java.lang.String
   */
  public static String lowerLineToHump(String lowerLineAndUppercaseStr) {
    //拆分成数组
    String[] eachStr = lowerLineAndUppercaseStr.split("_");
    StringBuilder resStr = new StringBuilder();
    String firstStr = "";
    String tempStr = "";
    for (int i = 0; i < eachStr.length; i++) {
      //第一个数组全部小写
      if (i == 0) {
        firstStr = eachStr[0].toLowerCase();
        resStr.append(firstStr);
      } else {
        //以后的数组首字母大写
        tempStr = capitalizeTheFirstLetter(eachStr[i]);
        resStr.append(tempStr);
      }
    }

    return resStr.toString();
  }

  /**
   * @Description: 任意字符串 -> 首字母大写
   * NAME -> Name
   * name -> Name
   * NaMe -> Name
   * @Author: Yiang37
   * @Date: 2020/11/03 16:50:16
   * @Version: 1.0
   * @method: capitalizeTheFirstLetter()
   * @param: [str]
   * @return: java.lang.String
   */
  public static String capitalizeTheFirstLetter(String str) {
    char firstChar = str.toUpperCase().charAt(0);
    String nextStr = str.toLowerCase().substring(1);
    return firstChar + nextStr;
  }

  /**
   * @Description: 驼峰 -> 下划线格式 默认小写,存在第二个形参且为true时大写.
   * @Author: Yiang37
   * @Date: 2020/11/03 17:10:25
   * @Version: 1.0
   * @method: humpToLowerLine()
   * @param: [humpStr, UppercaseZeroAndLowercaseOne]
   * @return: java.lang.String
   */
  public static String humpToLowerLine(String humpStr, boolean ... defaultUppercaseAndTrueLowercase) {
    Matcher matcher = humpPattern.matcher(humpStr);
    StringBuffer sb = new StringBuffer();
    while (matcher.find()) {
      matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
    }
    matcher.appendTail(sb);

    //如果第二个形参为true 转为大写
    if (defaultUppercaseAndTrueLowercase.length>=1 && defaultUppercaseAndTrueLowercase[0]){
      return sb.toString().toUpperCase();
    }
    return sb.toString();
  }

}

输出结果

nameAndAddress
Name
name_and_address

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • IDEA 中创建并部署 JavaWeb 程序的方法步骤(图文)

    IDEA 中创建并部署 JavaWeb 程序的方法步骤(图文)

    本文主要介绍了IDEA 中创建并部署 JavaWeb 程序的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Request的包装类HttpServletRequestWrapper的使用说明

    Request的包装类HttpServletRequestWrapper的使用说明

    这篇文章主要介绍了Request的包装类HttpServletRequestWrapper的使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 浅析关于java的序列化和反序列化

    浅析关于java的序列化和反序列化

    这篇文章主要介绍了浅析关于java的序列化和反序列化,所谓序列化,就是把要传输的对象以及相关信息转换成字节数组进行存储的过程,而反序列化就是将字节数组再转回对象的过程,需要的朋友可以参考下
    2023-07-07
  • 详细介绍Java函数式接口

    详细介绍Java函数式接口

    函数式接口在Java中是指有且仅有一个抽象方法的接口。当然接口中可以包含其他的方法默认、静态、私有,具体内容请参考下面文章内容
    2021-09-09
  • Java设计模式中观察者模式详解

    Java设计模式中观察者模式详解

    观察者模式是极其重要的一个设计模式,也是我几年开发过程中使用最多的设计模式,本文首先概述观察者模式的基本概念和Demo实现,接着是观察者模式在Java和Spring中的应用,最后是对观察者模式的应用场景和优缺点进行总结
    2022-11-11
  • spring中@Bean和@Component的区别及说明

    spring中@Bean和@Component的区别及说明

    文章主要介绍了@Bean和@Component两个注解在Spring框架中的定义、作用范围、创建方式、扫描和识别机制以及使用场景和建议
    2024-12-12
  • Spring boot actuator端点启用和暴露操作

    Spring boot actuator端点启用和暴露操作

    这篇文章主要介绍了Spring boot actuator端点启用和暴露操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Logback日志存放路径不统一解决方案

    Logback日志存放路径不统一解决方案

    这篇文章主要介绍了Logback日志存放路径不统一解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 解决Java字符串JSON转换异常:cn.hutool.json.JSONException: Mismatched hr and body

    解决Java字符串JSON转换异常:cn.hutool.json.JSONException: Mismatched 

    这篇文章主要给大家介绍了关于如何解决Java字符串JSON转换异常:cn.hutool.json.JSONException: Mismatched hr and body的相关资料,文中将解决的办法通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Spring中ApplicationListener的使用解析

    Spring中ApplicationListener的使用解析

    这篇文章主要介绍了Spring中ApplicationListener的使用解析,ApplicationContext事件机制是观察者设计模式的实现,通过ApplicationEvent类和ApplicationListener接口,需要的朋友可以参考下
    2023-12-12

最新评论