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

Original: https://www.cnblogs.com/xieshuang/p/10914355.html
Author: 河岸飞流
Title: Java-驼峰命名与下划线命名互转

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571662/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • windows nginx配置https访问

    本文主要记录在windows下安装nginx 环境:win10-64位。 到nginx官网上下载相应的安装包,http://nginx.org/en/download.html; …

    Java 2023年5月30日
    085
  • Java中的StringBuilder和StringBuffer适用场景

    我不知道为什么这个这么老的问题会出现在我的时间线上,看了一下回答,大多是2012,2013年的回答,照说那个年代,有些历史故事还很新鲜,却不知道为什么没有一个答案说到点子上。 st…

    Java 2023年6月7日
    080
  • Spring Boot + Spring Cloud 实现权限管理系统 后端篇(十九):服务消费(Ribbon、Feign)

    技术背景 上一篇教程中,我们利用Consul注册中心,实现了服务的注册和发现功能,这一篇我们来聊聊服务的调用。单体应用中,代码可以直接依赖,在代码中直接调用即可,但在微服务架构是分…

    Java 2023年5月30日
    093
  • springboot 整合druid–Java 注解+代码配置 Bean

    1.pom.xml引入 2.druid配置类: 3.构建DataSource对象 4.配置监控拦截器 5.配置Druid监控视图 6.去除druid监控页面广告 7.启动类加@Se…

    Java 2023年6月6日
    0105
  • mysql隐蔽的索引规则导致数据全表扫描

    索引是为了加速数据的检索,但是不合理的表结构或适应不当则会起到反作用。我们在项目中就遇到过类似的问题,两个十万级别的数据表,在做连接查询的时候,查询时间达到了7000多秒还没有查出…

    Java 2023年6月8日
    0103
  • Android BLE 蓝牙开发——扫码枪基于BLESSED

    一、蓝牙模式HID与BLE 当扫码枪与手机连接时,通常采用的是 蓝牙HID(Human Interface Device)模式。本质上是一个把扫码枪作为一个硬件键盘,按照键盘协议把…

    Java 2023年6月15日
    079
  • java基础-集合

    以下为本人的学习笔记 1.集合框架概述 1.1集合框架 的作用 在实际开发中,我们经常会对一组相同类型的数据进行统一管理操作。到目前为止,我们可以使用数组结构,链表结构,二叉树来实…

    Java 2023年6月15日
    0110
  • 订单缓存查询实践

    最近在做订单缓存查询相关需求,记录下该过程中缓存查询考虑的几个问题以及处理方案。 实际场景中使用缓存都是先去缓存中查询,如果缓存没有命中,在去查询数据库并将结果缓存。如果查询一个在…

    Java 2023年6月7日
    076
  • 模N取余法实现大整数进制转换 ——C语言版(2-16进制均可)

    思路如标题所说采用模N取余法,难点是这个除法过程如何实现。 个人推荐先到这篇博客学习一下,大佬的思路就是不一样:大数除法——超详细讲解 我所做的就是在上面博文代码的基础上增加了循环…

    Java 2023年6月8日
    0103
  • JVM-垃圾回收机制

    引用计数法 可达性分析 Java 中常见的垃圾回收算法 标记-清除算法 复制算法 标记-整理算法 分代回收算法 内存分配机制 Minor GC 和 Full GC 垃圾收集器 在 …

    Java 2023年6月9日
    076
  • 安装typescript环境并开启VSCode自动监视编译ts文件为js文件

    一、前言 小编最近开始学习 typescript,懂得人都知道, typescript是 vue3的基础伴生,配合更加默契。就像 vue2和 js一样! typescript不像j…

    Java 2023年6月15日
    099
  • 简明 Java 错误处理机制

    用个最简单的例子来展示为什么需要错误处理,以及怎么用。 import java.io.FileInputStream; import java.io.FileNotFoundExc…

    Java 2023年5月29日
    093
  • 【Elasticsearch】ES选主流程分析

    Raft协议 Raft是分布式系统中的一种共识算法,用于在集群中选举Leader管理集群。Raft协议中有以下角色: Leader(领导者):集群中的领导者,负责管理集群。 Can…

    Java 2023年6月8日
    083
  • eventBus for Flutter & Dart

    Eventbus框架,适用于Flutter,Dart项目 Architecture Pub Usage with 3 step Using Vip Event Sometimes …

    Java 2023年5月29日
    062
  • Spring Cloud Eureka 自我保护机制

    Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%,如果低于 85%,Eureka Server 会将这些实例保护起来,让这些实例不会过期…

    Java 2023年5月30日
    086
  • Java学习-第一部分-第三阶段-第四节:JDBC和数据库连接池

    JDBC和数据库连接池 笔记目录:(https://www.cnblogs.com/wenjie2000/p/16378441.html) 下载会使用到的包 JDBC概述 基本介绍…

    Java 2023年6月15日
    071
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球