java 中驼峰与下划线的写法互转
这里有新鲜出炉的 Java 设计模式, 程序狗速度看过来!
Java 程序设计语言
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言, 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台 (即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se)) 的总称
这篇文章主要介绍了 java 中驼峰与下横线的写法互转方法, 文中先是进行了简单的介绍, 之后跟大家分享了一个自己编写的工具类的示例代码, 有需要的朋友可以参考借鉴, 下面来一起学习学习吧
前言
在实际项目开发中, 会碰到这样的问题, 数据库表结构设计好了, 可实体类还没相应地弄出来实体类的属性命名方法一般是驼峰法, 而数据库中的表字段命名方法用的是下划线法如果表的字段非常多, 我们根据设计好的数据库字段再手动敲写一遍驼峰法的属性, 这有点费时了如何迅速地把数据库中的表字段变成我们所需要的驼峰式的属性呢?
解决方法有二, 一是通过文本编辑工具, 如 EditPlus,Notepad++ 等, 利用它们携带的正则替换功能来迅速实现; 二是通过自己编写工具类来实现至于第一种方法操作技巧, 不在这边赘述
第二种方法如下:
以下是自己编写的工具类的代码:
- package day0704;
- import java.util.regex.Matcher;
- import java.util.regex.Pattern;
- /**
- * 驼峰法 - 下划线互转
- * @author cshaper
- * @since 2015.07.04
- * @version 1.0.0
- */
- public class Underline2Camel {
- /**
- * 下划线转驼峰法
- * @param line 源字符串
- * @param smallCamel 大小驼峰, 是否为小驼峰
- * @return 转换后的字符串
- */
- public static String underline2Camel(String line, boolean smallCamel) {
- if (line == null || "".equals(line)) {
- return "";
- }
- StringBuffer sb = new StringBuffer();
- Pattern pattern = Pattern.compile("([A-Za-z\\d]+)(_)?");
- Matcher matcher = pattern.matcher(line);
- while (matcher.find()) {
- String word = matcher.group();
- sb.append(smallCamel && matcher.start() == 0 ? Character.toLowerCase(word.charAt(0)) : Character.toUpperCase(word.charAt(0)));
- int index = word.lastIndexOf('_');
- if (index > 0) {
- sb.append(word.substring(1, index).toLowerCase());
- } else {
- sb.append(word.substring(1).toLowerCase());
- }
- }
- return sb.toString();
- }
- /**
- * 驼峰法转下划线
- * @param line 源字符串
- * @return 转换后的字符串
- */
- public static String camel2Underline(String line) {
- if (line == null || "".equals(line)) {
- return "";
- }
- line = String.valueOf(line.charAt(0)).toUpperCase().concat(line.substring(1));
- StringBuffer sb = new StringBuffer();
- Pattern pattern = Pattern.compile("[A-Z]([a-z\\d]+)?");
- Matcher matcher = pattern.matcher(line);
- while (matcher.find()) {
- String word = matcher.group();
- sb.append(word.toUpperCase());
- sb.append(matcher.end() == line.length() ? "": "_");
- }
- return sb.toString();
- }
- public static void main(String[] args) {
- String line = "I_HAVE_AN_IPANG3_PIG";
- String camel = underline2Camel(line, true);
- System.out.println(camel);
- System.out.println(camel2Underline(camel));
- }
- }
运行结果如下:
- iHaveAnIpang3Pig
- I_HAVE_AN_IPANG3_PIG
来源: http://www.phperz.com/article/18/0207/358811.html