一、概念介绍

1.1、匈牙利命名法:user_id,字母均小写,不同单词间用下划线分割;

1.2、驼峰命名法:userId,除了第一个单词的首字母小写,其余单词的首字母均大写,单词之间没有符号,仅仅通过单词首字母的大小写区分;

1.3、帕斯卡命名法:UserId,所有单词的首字母均大写;

二、问题

如何将匈牙利命名法转换成驼峰命名法?

三、思路

这里有好几种方法,这里介绍一种:

1.首先我们要获取匈牙利命名法的 字符串的下划线下标的位置,例如user_old_pwd,下划线的下标为:4和8;

2、将下划线下标后面的字母大写;

3、替换掉下划线;

四、代码分析

首先,我们将字符串穿放到数组中,然后便利数据,将下划线的下标记录,求出下划线后面一位的地址,然后,将下划线后一位替换为大写,最后替换掉

4.1、替换指定位置字符为大写方法

/**

* 转换制定下标的String字符串的大小写

*@param s 字符串

*@param location 下标位置,第一个字符为下标为0;

*@return String 返回替换大小写后的String字符串

*/

public static String changeCase(String s,int location){

byte [] bytes = s.getBytes();

for(int i=0;i

if (bytes[i]>64&&bytes[i]<91&&i==location){

bytes[i] = (byte)(bytes[i]+32);

}else if(bytes[i]>96&&bytes[i]<123&&i==location) {

bytes[i] = (byte)(bytes[i]-32);

}

}

return s;

}

4.2、获取下标后的位置

/**

* 将匈牙利命名法转换为驼峰命名法

* 例如user_id ----->userId

*/

public static String turnHungary2CamelCase(String s) {

int j = 0;

s = s.toLowerCase();

for (int i = 0; i < s.lastIndexOf("_"); i++) {

i = s.indexOf("_", i);

j = i + 1;

s = changeCase(s, j);

}

s = s.replace("_", "");

return s;

}

4.3、完整的测试类如下:

/**

* Created by Taozhouchuan on 18-7-16.

*/

public class TestTurnHungary2Camel {

public static void main(String[] args) {

String s = "bser_name";

s = turnHungary2CamelCase(s);

System.out.println(s);

}

/**

* 将匈牙利命名法转换为驼峰命名法

* 例如user_id ----->userId

*/

public static String turnHungary2CamelCase(String s) {

int j = 0;

s = s.toLowerCase();

for (int i = 0; i < s.lastIndexOf("_"); i++) {

i = s.indexOf("_", i);

j = i + 1;

s = changeCase(s, j);

}

s = s.replace("_", "");

return s;

}

/**

* 转换制定下标的String字符串的大小写

*@param s 字符串

*@param location 下标位置,第一个字符为下标为0;

*@return String 返回替换大小写后的String字符串

*/

public static String changeCase(String s, int location) {

byte[] bytes = s.getBytes();

for (int i = 0; i < bytes.length; i++) {

if (bytes[i] > 64 && bytes[i] < 91 && i == location) {

bytes[i] = (byte) (bytes[i] + 32);

} else if (bytes[i] > 96 && bytes[i] < 123 && i == location) {

bytes[i] = (byte) (bytes[i] - 32);

}

}

return s;

}

}

开源不易,欢迎扫码支持,扫码领红包!

java采用匈牙利命名法_【Java】工具类,如何将匈牙利命名法转换成驼峰命名法-Go语言中文社区...相关推荐

  1. 数据库字段转换成驼峰命名

    数据库字段转换成驼峰命名 在搬砖的过程中都有遇到过要把大量数据库字段转驼峰命名,有些根据数据库配置自动生成一整套代码的工具 e.g:codeGen 我在这里记录一种正则替换的方式. 1. 首先要准备好 ...

  2. JavaScript实现字符串转换成驼峰表示法

    举例:已知有字符串foo="get-element-by-id",写一个function将其转化成驼峰表示法"getElementById". <scri ...

  3. 数据对接利用hutool工具类进行xml解析,xml转换成map,然后进行数据入库

    数据对接xml解析 <ESBEntry><!--通过MB对请求进行权限验证,验证后将删除AccessControl节点 --><AccessControl>< ...

  4. javascript常见面试题之一:将字符串'get-element-by-id'转换成驼峰命名法;

    var str='get-element-by-id'; function strToupper(str) { //利用split将字符串分割成数组var arr= str.split('-');fo ...

  5. 用mysql创建职工表_【典型例题】数据库——用MySQL来建立创建员工表;-Go语言中文社区...

    作业: 创建员工表(employee),要求包含字段(工号.姓名.年龄.性别.薪资.部门),主键为工号. 要求命令行完成以下操作:(禁止使用图形工具软件) 1)添加三条员工信息 分别是: 1,张三,1 ...

  6. mysql隐式锁定辅助索引_当Mysql - InnoDB行锁遇到复合主键和多列索引-Go语言中文社区...

    背景 今天在配合其他项目组做系统压测,过程中出现了偶发的死锁问题.分析代码后发现有复合主键的update情况,更新复合主键表时只使用了一个字段更新,同时在事务内又有对该表的insert操作,结果出现了 ...

  7. go 捕获网卡http_接口测试工具Postman(三)使用postman抓包捕获HTTP请求-Go语言中文社区...

    一.捕获HTTP请求 Postman提供了轻松查看和捕获应用程序中发送和接收的实际HTTP请求流量的工具, 可以在Postman本机应用程序中使用内置代理进行抓包. 1.postman内置代理 pos ...

  8. pycharm写python代码_使用pycharm写python代码的一些提高效率的技巧(持续更新)-Go语言中文社区...

    这篇博客主要是用来记录自己在学习pycharm时发现的一些能够提高编写python代码效率的小技巧. 1.问题:在代码很多的情况下,调用函数时想看看函数的参数以及函数内容,按ctrl+鼠标左键虽然进入 ...

  9. excel下划线转换成驼峰命名形式

    其中A1就是你要转换的那一列 =LEFT(A1,1)&MID(SUBSTITUTE(PROPER(A1),"_",""),2,1000) 转换后结果如下 ...

最新文章

  1. 修改windows cmd f2快捷_第三课——win10常用快捷键的使用
  2. MFC“未定义标识符”报错解决方法
  3. 错误:java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory 解决方案...
  4. 【数理知识】方程一阶二阶及常用词语含义
  5. Windows Phone 开发起步之旅之二 C#中的值类型和引用类型
  6. jQuery学习笔记之DOM操作、事件绑定(2)
  7. win10版本查看_想知道电脑中安装的win10版本号,用这3招就对了,一键查看
  8. 谐音梗?小米推出首款短视频应用“朕惊视频”:专为年轻人打造
  9. Linux内存管理:ARM64体系结构与编程之cache(2):cache一致性
  10. 线性规划 (二) 单纯形法
  11. Atiti.ui原理与gui理论
  12. Python数据结构与算法--面向对象
  13. go 导出 html 报告(使用 hero 预编译 html 模板引擎)
  14. 软件脱壳常见的几种方法
  15. 在蹉跎中一路前行---谈Microsoft .NET战略
  16. mysql怎么子查询_在mysql中如何进行子查询?
  17. 微信公众号文章怎么搞成html,微信公众号文章如何排版才能更好看(附教程)...
  18. 修复win10的更新服务器,Win10系统无法更新如何修复Windows Update组件
  19. matlab实现5自由度雄克机器人的运动仿真
  20. 产品读书《设计中的设计》-设计

热门文章

  1. 基于萤火虫优化算法的图像分割
  2. linux prom命令解释,eeprom 执行boot PROM命令
  3. python 自动生成word文档,用 Python 自动生成 Word 文档
  4. 论文解读:Semantic Neural Machine Translation using AMR
  5. [Android]-SDK QQ微信登入
  6. 「Hortic Res」CsGPA1调控黄瓜耐寒性的分子机制
  7. seo刷流量软件有哪些|比较好的有什么呢|seo排名软件
  8. 岁月留声的2015-F班破冰晚会
  9. Python——简陋的n阶魔方模拟
  10. vue echarts在中国地图鼠标经过同一指标下的多个省份高亮或凸起