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中驼峰命名与下划线命名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot实现自定义Starter的步骤详解

    SpringBoot实现自定义Starter的步骤详解

    在SpringBoot中,Starter是一种特殊的依赖,它可以帮助我们快速地集成一些常用的功能,例如数据库连接、消息队列、Web框架等。在本文中,我们将介绍如何使用Spring Boot实现自定义Starter,需要的朋友可以参考下
    2023-06-06
  • java设计模式之装饰模式详细介绍

    java设计模式之装饰模式详细介绍

    这篇文章主要介绍了java设计模式之装饰模式,有需要的朋友可以参考一下
    2013-12-12
  • SpringBoot MyBatis保姆级整合教程

    SpringBoot MyBatis保姆级整合教程

    因为Spring Boot框架开发的便利性,所以实现Spring Boot与数据访问层框架(例如MyBatis)的整合非常简单,主要是引入对应的依赖启动器,并进行数据库相关参数设置即可
    2022-06-06
  • SpringBoot 回滚操作的几种实现方式

    SpringBoot 回滚操作的几种实现方式

    回滚操作是一种常见的操作,用于撤销之前执行的操作,本文主要介绍了SpringBoot回滚操作的几种实现方式,包含基于异常类型的回滚、基于自定义逻辑的回滚和基于数据库状态的回滚,感兴趣的可以了解一下
    2024-03-03
  • 排序算法图解之Java选择排序

    排序算法图解之Java选择排序

    选择排序的工作原理是:第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。本文通过图片和示例介绍了选择排序,需要的可以参考一下
    2022-11-11
  • Java内存模型JMM详解

    Java内存模型JMM详解

    这篇文章主要介绍了Java内存模型JMM详解,涉及volatile和监视器锁,final字段,内存屏障等相关内容,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • idea导入项目框架的详细操作方法

    idea导入项目框架的详细操作方法

    大家使用idea开发工具时经常会需要导入项目框架,纠结该怎么操作呢,今天小编给大家分享一篇图文教程,帮助大家解决idea导入项目框架的问题,感兴趣的朋友一起看看吧
    2021-05-05
  • SpringBoot接口加密与解密的实现

    SpringBoot接口加密与解密的实现

    这篇文章主要介绍了SpringBoot接口加密与解密的实现
    2023-10-10
  • spring boot org.junit.jupiter.api不存在的解决

    spring boot org.junit.jupiter.api不存在的解决

    这篇文章主要介绍了spring boot org.junit.jupiter.api不存在的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java8的stream如何取max

    java8的stream如何取max

    这篇文章主要介绍了java8的stream如何取max问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论