Java-驼峰命名与下划线命名互转

package com.xsh.util;

/**
 * String工具类
 *
 * @author xieshuang
 * @date 2019-05-23
 */
public class StringUtils {

    private final static String UNDERLINE = "_";

    /***
     * 下划线命名转为驼峰命名
     *
     * @param para
     *        下划线命名的字符串
     */

    public static String underlineToHump(String para) {
        StringBuilder result = new StringBuilder();
        String a[] = para.split(UNDERLINE);
        for (String s : a) {
            if (!para.contains(UNDERLINE)) {
                result.append(s);
                continue;
            }
            if (result.length() == 0) {
                result.append(s.toLowerCase());
            } else {
                result.append(s.substring(0, 1).toUpperCase());
                result.append(s.substring(1).toLowerCase());
            }
        }
        return result.toString();
    }

    /***
     * 驼峰命名转为下划线命名
     *
     * @param para
     *        驼峰命名的字符串
     */

    public static String humpToUnderline(String para) {
        StringBuilder sb = new StringBuilder(para);
        int temp = 0;//定位
        if (!para.contains(UNDERLINE)) {
            for (int i = 0; i < para.length(); i++) {
                if (Character.isUpperCase(para.charAt(i))) {
                    sb.insert(i + temp, UNDERLINE);
                    temp += 1;
                }
            }
        }
        return sb.toString().toUpperCase();
    }
}

运行结果:

testDadaDada
T_AEST_DADA_SADA

源码地址:https://github.com/xieshuang/util

原文地址:https://www.cnblogs.com/xieshuang/p/10914355.html

时间: 2024-10-06 11:40:40

Java-驼峰命名与下划线命名互转的相关文章

驼峰命名和下划线命名互转php实现

驼峰命名和下划线命名经常需要互转,下面提供两种php的实现方式.第一种方法效率相对差一些,实现方式如下: //驼峰命名转下划线命名 function toUnderScore($str) { $dstr = preg_replace_callback('/([A-Z]+)/',function($matchs) { return '_'.strtolower($matchs[0]); },$str); return trim(preg_replace('/_{2,}/','_',$dstr),'

【原创】字符串工具类--驼峰法与下划线法互转

在实际项目开发中,会碰到这样的问题,数据库表结构设计好了,可实体类还没相应地弄出来.实体类的属性命名方法一般是驼峰法,而数据库中的表字段命名方法用的是下划线法.如果表的字段非常多,我们根据设计好的数据库字段再手动敲写一遍驼峰法的属性,这有点费时了.如何迅速地把数据库中的表字段变成我们所需要的驼峰式的属性呢? 解决方法有二,一是通过文本编辑工具,如EditPlus,Notepad++等,利用它们携带的正则替换功能来迅速实现:二是通过自己编写工具类来实现.至于第一种方法操作技巧,不在这边赘述.第二种

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

1 /** 2 * 将驼峰式命名的字符串转换为下划线大写方式.如果转换前的驼峰式命名的字符串为空,则返回空字符串.</br> 3 * 例如:HelloWorld->HELLO_WORLD 4 * @param name 转换前的驼峰式命名的字符串 5 * @return 转换后下划线大写方式命名的字符串 6 */ 7 public static String underscoreName(String name) { 8 StringBuilder result = new String

驼峰式命名改下划线命名

import sys import re if __name__ == "__main__": # 读取第一行的n n = int(sys.stdin.readline().strip()) str = [] for i in range(n): # 读取每一行 line = sys.stdin.readline().strip() # 匹配正则,匹配小写字母和大写字母的分界位置 p = re.compile(r'([A-Z][a-z]*)') # 这里第二个参数使用了正则分组的后向引

java 驼峰字符和下划线字符相互转换工具类

public static final char UNDERLINE='_'; public static String camelToUnderline(String param){ if (param==null||"".equals(param.trim())){ return ""; } int len=param.length(); StringBuilder sb=new StringBuilder(len); for (int i = 0; i <

驼峰法和下划线命名法的互相转换

主要是接口入参太多,python和java的命名不同,做个转换 # coding:utf8 import re class StrTransverter(object): p = re.compile(r'([a-z]|\d)([A-Z])') p2 = re.compile(r'(_\w)') def __init__(self,raw_str): self.raw_str = raw_str def hump2underline(self): """ 驼峰法转换为下划线

iOS 蛇形式(下划线)命名转化为驼峰式

在解析json的时候,经常json的变量名都是蛇行式(下划线)命名法来命名的,所以写了一个类方法来转换. + (NSString *)convertToCamelCaseFromSnakeCase:(NSString *)key { NSMutableString *str = [NSMutableString stringWithString:key]; while ([str containsString:@"_"]) { NSRange range = [str rangeOfS

详解 Python 中的下划线命名规则

在 python 中,下划线命名规则往往令初学者相当 疑惑:单下划线.双下划线.双下划线还分前后……那它们的作用与使用场景 到底有何区别呢?今天 就来聊聊这个话题. 1.单下划线(_) 通常情况下,单下划线(_)会在以下3种场景中使用: 1.1 在解释器中: 在这种情况下,“_”代表交互式解释器会话中上一条执行的语句的结果.这种用法首先被标准CPython解释器采用,然后其他类型的解释器也先后采用. >>> _ Traceback (most recent call last): Fil

驼峰字符串与下划线字符串之间相互转化工具

博客主页:http://blog.csdn.net/minna_d 起因: 我们经常会有驼峰字符串与下划线字符串相互转化的需求, 而且这个还不好之间用正则替换. 比如:db 表中命名风格通常为下划线风格, web应用pojo中通常有时驼峰风格. 如果字段太多,总觉得很麻烦 实现: cm2us.py: #!/bin/python import re import sys def camelToUnderlines(x):     return re.sub('_([a-z])', lambda m