java中驼峰命名和下划线命名互转方法(代码实现)

简介: 1 /** 2 * 将驼峰式命名的字符串转换为下划线大写方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。 3 * 例如:HelloWorld->HELLO_WORLD 4 * @param name 转换前的驼峰式命名的字符串 5 * @return 转换后下划线大写方...
 1 /**
 2  * 将驼峰式命名的字符串转换为下划线大写方式。如果转换前的驼峰式命名的字符串为空,则返回空字符串。
 3  * 例如:HelloWorld->HELLO_WORLD
 4  * @param name 转换前的驼峰式命名的字符串
 5  * @return 转换后下划线大写方式命名的字符串
 6  */
 7 public static String underscoreName(String name) {
 8     StringBuilder result = new StringBuilder();
 9     if (name != null && name.length() > 0) {
10         // 将第一个字符处理成大写
11         result.append(name.substring(0, 1).toUpperCase());
12         // 循环处理其余字符
13         for (int i = 1; i < name.length(); i++) {
14             String s = name.substring(i, i + 1);
15             // 在大写字母前添加下划线
16             if (s.equals(s.toUpperCase()) && !Character.isDigit(s.charAt(0))) {
17                 result.append("_");
18             }
19             // 其他字符直接转成大写
20             result.append(s.toUpperCase());
21         }
22     }
23     return result.toString();
24 }
 1 /**
 2  * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。
 3  * 例如:HELLO_WORLD->HelloWorld
 4  * @param name 转换前的下划线大写方式命名的字符串
 5  * @return 转换后的驼峰式命名的字符串
 6  */
 7 public static String camelName(String name) {
 8     StringBuilder result = new StringBuilder();
 9     // 快速检查
10     if (name == null || name.isEmpty()) {
11         // 没必要转换
12         return "";
13     } else if (!name.contains("_")) {
14         // 不含下划线,仅将首字母小写
15         return name.substring(0, 1).toLowerCase() + name.substring(1);
16     }
17     // 用下划线将原始字符串分割
18     String camels[] = name.split("_");
19     for (String camel :  camels) {
20         // 跳过原始字符串中开头、结尾的下换线或双重下划线
21         if (camel.isEmpty()) {
22             continue;
23         }
24         // 处理真正的驼峰片段
25         if (result.length() == 0) {
26             // 第一个驼峰片段,全部字母都小写
27             result.append(camel.toLowerCase());
28         } else {
29             // 其他的驼峰片段,首字母大写
30             result.append(camel.substring(0, 1).toUpperCase());
31             result.append(camel.substring(1).toLowerCase());
32         }
33     }
34     return result.toString();
35 }

 参考博客:http://jhonnnnnn.iteye.com/blog/2261298

我的GitHub地址: https://github.com/heizemingjun
我的博客园地址: http://www.cnblogs.com/chenmingjun
我的蚂蚁笔记博客地址: http://blog.leanote.com/chenmingjun
Copyright ©2018 黑泽明军
【转载文章务必保留出处和署名,谢谢!】
相关文章
|
3月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
407 5
|
3月前
|
Java
Java语言实现字母大小写转换的方法
Java提供了多种灵活的方法来处理字符串中的字母大小写转换。根据具体需求,可以选择适合的方法来实现。在大多数情况下,使用 String类或 Character类的方法已经足够。但是,在需要更复杂的逻辑或处理非常规字符集时,可以通过字符流或手动遍历字符串来实现更精细的控制。
335 18
|
3月前
|
Java 数据处理 API
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
为什么你的Java代码应该多用Stream?从循环到声明式的思维转变
295 115
|
3月前
|
安全 Java 编译器
为什么你的Java代码需要泛型?类型安全的艺术
为什么你的Java代码需要泛型?类型安全的艺术
212 98
|
3月前
|
Java 编译器 API
java最新版和java8的区别,用代码展示
java最新版和java8的区别,用代码展示
354 43
|
3月前
|
Java 编译器 Go
【Java】(5)方法的概念、方法的调用、方法重载、构造方法的创建
Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序组合方法包含于类或对象中方法在程序中被创建,在其他地方被引用方法的优点使程序变得更简短而清晰。有利于程序维护。可以提高程序开发的效率。提高了代码的重用性。方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。这种就属于驼峰写法下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。
246 4
|
3月前
|
安全 Java 容器
告别空指针噩梦:Optional让Java代码更优雅
告别空指针噩梦:Optional让Java代码更优雅
422 94
|
3月前
|
安全 Java 容器
告别繁琐判空:Optional让你的Java代码更优雅
告别繁琐判空:Optional让你的Java代码更优雅
|
3月前
|
编解码 Java 开发者
Java String类的关键方法总结
以上总结了Java `String` 类最常见和重要功能性方法。每种操作都对应着日常编程任务,并且理解每种操作如何影响及处理 `Strings` 对于任何使用 Java 的开发者来说都至关重要。
340 5
|
4月前
|
算法 安全 Java
除了类,Java中的接口和方法也可以使用泛型吗?
除了类,Java中的接口和方法也可以使用泛型吗?
187 11