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

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

相关文章

  • springboot项目配置多个kafka的示例代码

    springboot项目配置多个kafka的示例代码

    这篇文章主要介绍了springboot项目配置多个kafka,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • 使用Java设置字型和颜色的方法详解

    使用Java设置字型和颜色的方法详解

    这篇文章主要介绍了使用Java设置字型和颜色的方法,在Java的绘图等图形化编程中较常用到,需要的朋友可以参考下
    2015-10-10
  • MyBatis-Plus拦截器实现数据权限控制的方法

    MyBatis-Plus拦截器实现数据权限控制的方法

    MyBatis-Plus是一款基于MyBatis的增强工具,它提供了一些便捷的功能和增强的查询能力,数据权限控制是在系统中对用户访问数据进行限制的一种机制,这篇文章主要给大家介绍了关于MyBatis-Plus拦截器实现数据权限控制的相关资料,需要的朋友可以参考下
    2024-01-01
  • 一文搞懂java反射基本API

    一文搞懂java反射基本API

    这篇文章主要为大家介绍了一文搞懂java反射基本API,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • SpringBoot静态资源css,js,img配置方案

    SpringBoot静态资源css,js,img配置方案

    这篇文章主要介绍了SpringBoot静态资源css,js,img配置方案,下文给大家分享了三种解决方案,需要的朋友可以参考下
    2017-07-07
  • Java行为型设计模式之外观设计模式详解

    Java行为型设计模式之外观设计模式详解

    外观模式为多个复杂的子系统,提供了一个一致的界面,使得调用端只和这个接口发生调用,而无须关系这个子系统内部的细节。本文将通过示例详细为大家讲解一下外观模式,需要的可以参考一下
    2022-11-11
  • idea工具栏如何添加快捷图标的操作

    idea工具栏如何添加快捷图标的操作

    这篇文章主要介绍了idea工具栏如何添加快捷图标的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • 基于JAVA中Jersey处理Http协议中的Multipart的详解

    基于JAVA中Jersey处理Http协议中的Multipart的详解

    之前在基于C#开发彩信用最原始的StringBuilder拼接字符串方式处理过Multipart。现在在做一个项目的时候,由于之前的技术路线都是使用Jersey处理Http这块,为了保持技术路线一致,研究了一下如何使用Jersey处理Http协议中的Multipart
    2013-05-05
  • Java实现插入排序,希尔排序和归并排序

    Java实现插入排序,希尔排序和归并排序

    这篇文章主要为大家详细介绍了插入排序,希尔排序和归并排序的多种语言的实现(JavaScript、Python、Go语言、Java),感兴趣的小伙伴可以了解一下
    2022-12-12
  • SpringSecurity之SecurityContextHolder使用解读

    SpringSecurity之SecurityContextHolder使用解读

    这篇文章主要介绍了SpringSecurity之SecurityContextHolder使用解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论