文档章节

驼峰风格、下划线风格互转

扬州炒饭
 扬州炒饭
发布于 2014/05/04 09:57
字数 404
阅读 741
收藏 10
/**
 * 将驼峰式命名的字符串转换为下划线大写方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。</br>
 * 例如:HelloWorld->HELLO_WORLD
 * @param name 转换前的驼峰式命名的字符串
 * @return 转换后下划线大写方式命名的字符串
 */
public static String underscoreName(String name) {
    StringBuilder result = new StringBuilder();
    if (name != null && name.length() > 0) {
        // 将第一个字符处理成大写
        result.append(name.substring(0, 1).toUpperCase());
        // 循环处理其余字符
        for (int i = 1; i < name.length(); i++) {
            String s = name.substring(i, i + 1);
            // 在大写字母前添加下划线
            if (s.equals(s.toUpperCase()) && !Character.isDigit(s.charAt(0))) {
                result.append("_");
            }
            // 其他字符直接转成大写
            result.append(s.toUpperCase());
        }
    }
    return result.toString();
}

/**
 * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。</br>
 * 例如:HELLO_WORLD->HelloWorld
 * @param name 转换前的下划线大写方式命名的字符串
 * @return 转换后的驼峰式命名的字符串
 */
public static String camelName(String name) {
    StringBuilder result = new StringBuilder();
    // 快速检查
    if (name == null || name.isEmpty()) {
        // 没必要转换
        return "";
    } else if (!name.contains("_")) {
        // 不含下划线,仅将首字母小写
        return name.substring(0, 1).toLowerCase() + name.substring(1);
    }
    // 用下划线将原始字符串分割
    String camels[] = name.split("_");
    for (String camel :  camels) {
        // 跳过原始字符串中开头、结尾的下换线或双重下划线
        if (camel.isEmpty()) {
            continue;
        }
        // 处理真正的驼峰片段
        if (result.length() == 0) {
            // 第一个驼峰片段,全部字母都小写
            result.append(camel.toLowerCase());
        } else {
            // 其他的驼峰片段,首字母大写
            result.append(camel.substring(0, 1).toUpperCase());
            result.append(camel.substring(1).toLowerCase());
        }
    }
    return result.toString();
}



© 著作权归作者所有

扬州炒饭
粉丝 42
博文 93
码字总数 24585
作品 0
程序员
私信 提问
驼峰命名法和下划线风格的互转

偶然遇到这个问题,感觉有些意思,于是研究了一下。 下划线转驼峰比较简单,直接根据下划线打散成数组,每个子项首字符转大写,再做字符串拼接即可。 驼峰转下划线风格,稍微复杂一些。刚开始...

crazymus
2015/10/16
4K
0
「游戏引擎Mojoc」(2)C代码风格

代码风格的问题,很微妙,也很有趣。因为它并不影响代码的运行和功能,但它连接着人的心灵和信仰。代码风格目的简单明确,就是增加代码的可阅读性,降低维护成本,减少心智负担。纠结的地方在...

scottcgi
2017/10/10
0
0
Google java编程风格指南

学习 1. 源文件是UTF-8编码 2. 源文件顺序: 许可证 --->package----->import ---->顶级类, 用空行分开 3. import顺序:静态导入--->google--->第三方(sun,org...)--->java --->javax; 4......

pearl2015
2016/01/07
83
0
camel-name-utils

用处 用来将字符串在驼峰风格跟下划线风格之间切换。对于一般人可能没用,对于写orm框架的人有点作用。 例子: company_name -> companyName 安装方式 添加以下依赖到pom.xml <dependency> ...

alexxiyang
2014/09/19
686
0
javaBean转换为json怎么实现指定属性名风格,如驼峰和下划线两种?

@wenshao 你好,想跟你请教个问题: javaBean转换为json怎么实现指定属性名风格,如驼峰和下划线两种?json的标准好像是下划线分割单词 不要告诉我 使用@JSONField 改动太多了啊...

Dreampie
2015/06/26
2.4K
1

没有更多内容

加载失败,请刷新页面

加载更多

Google Guava 笔记

一、引言 Guava 是 google 几个java核心类库的集合,包括集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common ...

SuShine
27分钟前
7
0
SpringBoot中使用@Value为静态变量赋值并测试是否成功

今天想像普通变量一样如下采用写法取配置的,但取到的是个null。。。 @Value("${test.appKey}")private static String appKey; 才发现不能通过这种方式取配置来给static变量赋值 在网上搜索...

SilentSong
28分钟前
5
0
ECMAScript语句之with 语句

ECMAScript with 语句,用于设置代码在特定对象中的作用域(with运行缓慢,设置了属性值时更加缓慢,最好避免使用with语句) 一、with 语句用于字符串(配合toUpperCase()方法) var a = "C...

专注的阿熊
29分钟前
4
0
Apache Flink 进阶(一):Runtime 核心机制剖析

1. 综述 本文主要介绍 Flink Runtime 的作业执行的核心机制。首先介绍 Flink Runtime 的整体架构以及 Job 的基本执行流程,然后介绍在这个过程,Flink 是怎么进行资源管理、作业调度以及错误...

大涛学长
35分钟前
4
0
7. 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 注意: 假设我们的环境只能...

苏坡吴
36分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部