驼峰命名与下划线命名相互转换

424次阅读  |  发布于3年以前

平常开发中经常会碰到需要相互转换,比如:模型名会自动转换为对应下划线的表名,如,UserType 自动转化为user_type,所以记录一下,方便以后直接copy,废话不多说,直接粘贴代码。

package cn.liuhaihua;

/**
 * @ClassName Under
 * @Description TODO
 * @Author liuhaihua
 * @Date 2021/1/13 18:23
 * @Version 1.0
 */
public class Under {
  /**
   * 功能:驼峰命名转下划线命名
   * 小写和大写紧挨一起的地方,加上分隔符,然后全部转小写
   */
  public static String camel2under(String c)
  {
    String separator = "_";
    c = c.replaceAll("([a-z])([A-Z])", "$1"+separator+"$2").toLowerCase();
    return c;
  }
  /**
   * 功能:下划线命名转驼峰命名
   * 将下划线替换为空格,将字符串根据空格分割成数组,再将每个单词首字母大写
   * @param s
   * @return
   */
  private static String under2camel(String s)
  {
    String separator = "_";
    String under="";
    s = s.toLowerCase().replace(separator, " ");
    String sarr[]=s.split(" ");
    for(int i=0;i<sarr.length;i++)
    {
      String w=sarr[i].substring(0,1).toUpperCase()+sarr[i].substring(1);
      under +=w;
    }
    return under;
  }

  /**
   * 测试
   * @param args
   */
  public static  void main(String[] args){
    String c="userId";
    System.out.println("驼峰命名转下划线命名"+camel2under(c));
    String s="user_id";
    System.out.println("下划线命名转驼峰命名"+under2camel(s));
  }

}

如果你还不知道什么是驼峰建议看这个文章:你是喜欢用下划线还是小驼峰呢?

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8