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

 更新时间:2021年01月20日 09:37:43   作者:呐喊6510  
这篇文章主要介绍了Java中驼峰命名与下划线命名相互转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

记得在thinkphp框架中,模型名会自动转换为对应下划线的表名,如,UserType 自动转化为user_type,在平时写程序中很多地方也会用到类似的自动转换方法。

Java版本的驼峰命名与下划线命名相互转换

驼峰命名转下划线命名

方法:小写字母和大写字母紧挨一起的之间,加上分隔符,然后全部转小写

示例代码:

/**
* 功能:驼峰命名转下划线命名
* 小写和大写紧挨一起的地方,加上分隔符,然后全部转小写
*/
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;
}

顺便附上php版本的转换方法:

  /**
  * 功能:下划线命名转驼峰命名
  * 方法:
  * step1.原字符串转小写,原字符串中的分隔符用空格替换,在字符串开头加上分隔符
  * step2.将字符串中每个单词的首字母转换为大写,再去空格,去字符串首部附加的分隔符.
  */
  function camelize($uncamelized_words,$separator='_')
  {
    $uncamelized_words = $separator. str_replace($separator, " ", strtolower($uncamelized_words));
    return ltrim(str_replace(" ", "", ucwords($uncamelized_words)), $separator );
  }
 
  /**
  * 功能:驼峰命名转下划线命名
  * 方法:小写和大写紧挨一起的地方,加上分隔符,然后全部转小写
  */
  function uncamelize($camelCaps,$separator='_')
  {
    return strtolower(preg_replace('/([a-z])([A-Z])/', "$1" . $separator . "$2", $camelCaps));
  }


到此这篇关于Java中驼峰命名与下划线命名相互转换的文章就介绍到这了,更多相关Java中驼峰命名与下划线命名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring为java.util.Properties类型的属性进行赋值过程解析

    spring为java.util.Properties类型的属性进行赋值过程解析

    这篇文章主要介绍了spring为java.util.Properties类型的属性进行赋值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • 使用mybatis切片实现数据权限控制的操作流程

    使用mybatis切片实现数据权限控制的操作流程

    数据权限控制需要对查询出的数据进行筛选,对业务入侵最少的方式就是利用mybatis或者数据库连接池的切片对已有业务的sql进行修改,本文给大家介绍了使用mybatis切片实现数据权限控制的操作流程,需要的朋友可以参考下
    2024-07-07
  • PageHelper在springboot+mybatis框架中的使用步骤及原理解析

    PageHelper在springboot+mybatis框架中的使用步骤及原理解析

    这篇文章主要介绍了PageHelper在springboot+mybatis框架中的使用步骤及原理解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Java并发编程中的CompletableFuture使用详解

    Java并发编程中的CompletableFuture使用详解

    这篇文章主要介绍了Java并发编程中的CompletableFuture使用详解,Future接口定义了操作异步任务执行的一些方法,如获取异步任务执行的结果、取消任务的执行、判断任务是否被取消,判断任务是否执行完毕等,需要的朋友可以参考下
    2023-12-12
  • Java如何获取Object中Value

    Java如何获取Object中Value

    在Java中,获取Object中的值需依赖于对象的类型和属性,常用方法包括使用反射、getter方法、接口或抽象类、Map等数据结构,本文给大家介绍Java如何获取Object中Value,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • java多线程开启的三种方式你知道吗

    java多线程开启的三种方式你知道吗

    这篇文章主要为大家详细介绍了java多线程开启的三种方式,使用数据库,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下<BR>
    2022-02-02
  • mybatis,foreach,找不到参数报错问题及解决

    mybatis,foreach,找不到参数报错问题及解决

    这篇文章主要介绍了mybatis,foreach,找不到参数报错问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • java 同步器SynchronousQueue详解及实例

    java 同步器SynchronousQueue详解及实例

    这篇文章主要介绍了java 同步器SynchronousQueue详解及实例的相关资料,需要的朋友可以参考下
    2017-05-05
  • Java枚举_动力节点Java学院整理

    Java枚举_动力节点Java学院整理

    enum 的全称为 enumeration, 是 JDK 5 中引入的新特性,存放在 java.lang 包中。这篇文章给大家介绍Java枚举相关知识,需要的的朋友参考下
    2017-04-04
  • 使用httpclient实现免费的google翻译api

    使用httpclient实现免费的google翻译api

    这篇文章主要介绍了使用httpclient实现免费的google翻译api的方法,大家参考使用吧
    2014-01-01

最新评论