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

作者:羊37 时间:2022-02-18 09:56:14 

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

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

来源:https://www.cnblogs.com/yang37/p/13921957.html

标签:Java,字符串,驼峰,下换线,格式,转换
0
投稿

猜你喜欢

  • Android Touch事件分发过程详解

    2021-08-28 20:11:33
  • 浅析Java的Hibernate框架中的缓存和延迟加载机制

    2023-04-12 15:58:00
  • Android中LayoutInflater.inflater()的正确打开方式

    2022-04-12 16:25:57
  • Android中实现iOS中的毛玻璃效果

    2023-01-27 01:44:14
  • Feign如何实现第三方的HTTP请求

    2023-06-10 16:20:20
  • Java中用enum结合testng实现数据驱动的方法示例

    2021-08-04 07:44:21
  • Unity3D使用右键菜单打开工程

    2023-07-18 05:08:46
  • Java 线程的生命周期完整实例分析

    2023-06-27 12:52:26
  • java二叉树的几种遍历递归与非递归实现代码

    2022-06-29 19:19:47
  • jdk自带线程池实例详解

    2022-05-14 02:04:56
  • 利用Thumbnailator轻松实现图片缩放、旋转与加水印

    2022-03-26 18:44:04
  • SpringSecurity实现访问控制url匹配

    2021-11-03 00:18:16
  • Android实现多个连续带数字圆圈效果

    2021-09-10 02:46:23
  • JAVA JDK8 List分组的实现和用法

    2023-11-26 09:56:11
  • Spring启动过程中实例化部分代码的分析之Bean的推断构造方法

    2022-08-26 02:00:07
  • Unity3d实现Flappy Bird游戏

    2023-09-17 20:54:29
  • Android控件CardView实现卡片布局

    2022-12-05 02:10:32
  • JAVA递归生成树形菜单的实现过程

    2023-07-15 08:57:22
  • JAVA swing布局管理器实例解析

    2022-01-11 05:05:15
  • C#使用itextsharp生成PDF文件的实现代码

    2022-05-18 03:21:27
  • asp之家 软件编程 m.aspxhome.com