1. 程式人生 > 程式設計 >Java字串駝峰與下換線格式轉換如何實現

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。