软件编程
位置:首页>> 软件编程>> java编程>> Java字符串驼峰与下换线格式转换如何实现

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

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

标签: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

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com