欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java字符串轉(zhuǎn)駝峰格式的方法

 更新時間:2024年01月24日 15:33:28   作者:姚舜禹_12140  
在開發(fā)場景中,我們會遇到一些涉及字符串的轉(zhuǎn)化,本文主要介紹了Java字符串轉(zhuǎn)駝峰格式的方法,具有一定的參考價值,感興趣的可以了解一下

一、場景描述

在開發(fā)場景中,我們會遇到一些涉及字符串的轉(zhuǎn)化。例如:數(shù)據(jù)庫字段的名稱叫TYPE_NAME,但是有時候我們需要將其轉(zhuǎn)化為typeName?;蛘邔ypeName的駝峰命名方式轉(zhuǎn)化為TYPE_NAME,這時候就需要進(jìn)行轉(zhuǎn)化。因此,在這里提供了個工具類。接下來將進(jìn)行演示。

二、代碼示例

1、下劃線大寫方式命名的字符串轉(zhuǎn)換為駝峰式

示例:STUDENT_NAME轉(zhuǎn)為studentName

/**
     * 將下劃線大寫方式命名的字符串轉(zhuǎn)換為駝峰式。如果轉(zhuǎn)換前的下劃線大寫方式命名的字符串為空,則返回空字符串
     *
     * @param name 轉(zhuǎn)換前的下劃線大寫方式命名的字符串
     * @return 轉(zhuǎn)換后的駝峰式命名的字符串
     */
    public static String convertToCamelCase(String name) {
        StringBuilder result = new StringBuilder();
        // 快速檢查
        if (name == null || name.isEmpty()) {
            // 沒必要轉(zhuǎn)換
            return "";
        } else if (!name.contains("_")) {
            // 不含下劃線,僅將首字母大寫
            return name.toLowerCase();
        }
        // 用下劃線將原始字符串分割
        String[] camels = name.split("_");
        for (String camel : camels) {
            // 跳過原始字符串中開頭、結(jié)尾的下?lián)Q線或雙重下劃線
            if (camel.isEmpty()) {
                continue;
            }
            // 首字母大寫
            result.append(camel.substring(0, 1).toUpperCase());
            result.append(camel.substring(1).toLowerCase());
        }
        StringBuilder ret = new StringBuilder(result.substring(0, 1).toLowerCase());
        ret.append(result.substring(1, result.toString().length()));
        return ret.toString();
    }

2、駝峰式命名的字符串轉(zhuǎn)換為下劃線大寫的方式

示例:studentName轉(zhuǎn)為STUDENT_NAME

    /**
     * 駝峰命名的字符串轉(zhuǎn)為下劃線大寫的方式
     * @param name
     * @return
     */
    public static String humpToUnderline(String name) {
        StringBuilder result = new StringBuilder();
        if (name != null && name.length() > 0) {
            // 將第一個字符處理成大寫
            result.append(name.substring(0, 1).toUpperCase());
            // 循環(huán)處理其余字符
            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("_");
                }
                // 其他字符直接轉(zhuǎn)成大寫
                result.append(s.toUpperCase());
            }
        }
        return result.toString();
    }

3、完整代碼

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class MyTest {
    public static void main(String[] args) throws Exception {
        System.out.println(humpToUnderline("studentName"));
        System.out.println(convertToCamelCase("STUDENT_AGE"));
    }



    /**
     * 駝峰命名的字符串轉(zhuǎn)為下劃線大寫的方式
     * @param name
     * @return
     */
    public static String humpToUnderline(String name) {
        StringBuilder result = new StringBuilder();
        if (name != null && name.length() > 0) {
            // 將第一個字符處理成大寫
            result.append(name.substring(0, 1).toUpperCase());
            // 循環(huán)處理其余字符
            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("_");
                }
                // 其他字符直接轉(zhuǎn)成大寫
                result.append(s.toUpperCase());
            }
        }
        return result.toString();
    }


    /**
     * 將下劃線大寫方式命名的字符串轉(zhuǎn)換為駝峰式。如果轉(zhuǎn)換前的下劃線大寫方式命名的字符串為空,則返回空字符串
     *
     * @param name 轉(zhuǎn)換前的下劃線大寫方式命名的字符串
     * @return 轉(zhuǎn)換后的駝峰式命名的字符串
     */
    public static String convertToCamelCase(String name) {
        StringBuilder result = new StringBuilder();
        // 快速檢查
        if (name == null || name.isEmpty()) {
            // 沒必要轉(zhuǎn)換
            return "";
        } else if (!name.contains("_")) {
            // 不含下劃線,僅將首字母大寫
            return name.toLowerCase();
        }
        // 用下劃線將原始字符串分割
        String[] camels = name.split("_");
        for (String camel : camels) {
            // 跳過原始字符串中開頭、結(jié)尾的下?lián)Q線或雙重下劃線
            if (camel.isEmpty()) {
                continue;
            }
            // 首字母大寫
            result.append(camel.substring(0, 1).toUpperCase());
            result.append(camel.substring(1).toLowerCase());
        }
        StringBuilder ret = new StringBuilder(result.substring(0, 1).toLowerCase());
        ret.append(result.substring(1, result.toString().length()));
        return ret.toString();
    }

}

測試:

到此這篇關(guān)于Java字符串轉(zhuǎn)駝峰格式的方法的文章就介紹到這了,更多相關(guān)Java字符串轉(zhuǎn)駝峰格式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java實現(xiàn)圖片拼接

    Java實現(xiàn)圖片拼接

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)圖片拼接的相關(guān)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 深入Ajax代理的Java Servlet的實現(xiàn)詳解

    深入Ajax代理的Java Servlet的實現(xiàn)詳解

    本篇文章是對Ajax代理的Java Servlet的實現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • SpringBoot實現(xiàn)緩存預(yù)熱的幾種常用方案

    SpringBoot實現(xiàn)緩存預(yù)熱的幾種常用方案

    緩存預(yù)熱是指在 Spring Boot 項目啟動時,預(yù)先將數(shù)據(jù)加載到緩存系統(tǒng)(如 Redis)中的一種機制,本文給大家介紹了SpringBoot實現(xiàn)緩存預(yù)熱的幾種常用方案,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • Java?多線程并發(fā)ReentrantLock

    Java?多線程并發(fā)ReentrantLock

    這篇文章主要介紹了Java?多線程并發(fā)ReentrantLock,Java?提供了?ReentrantLock?可重入鎖來提供更豐富的能力和靈活性,感興趣的小伙伴可以參考一下
    2022-06-06
  • Spring框架的環(huán)境搭建和測試實現(xiàn)

    Spring框架的環(huán)境搭建和測試實現(xiàn)

    這篇文章主要介紹了Spring框架的環(huán)境搭建和測試實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 使用注解@Validated效驗VO參數(shù)是否合規(guī)

    使用注解@Validated效驗VO參數(shù)是否合規(guī)

    這篇文章主要為大家介紹了使用注解@Validated效驗VO參數(shù)是否合規(guī)過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 使用SpringBoot與Thrift實現(xiàn)RPC通信的方式詳解

    使用SpringBoot與Thrift實現(xiàn)RPC通信的方式詳解

    在微服務(wù)架構(gòu)的世界里,服務(wù)間的通信機制選擇成為了關(guān)鍵決策之一,RPC因其簡潔、高效的特點備受青睞,本文將詳細(xì)探討如何利用Spring?Boot和Thrift框架構(gòu)建RPC通信,讓讀者理解其內(nèi)在原理及實現(xiàn)方式,需要的朋友可以參考下
    2023-10-10
  • 冒泡排序算法原理及JAVA實現(xiàn)代碼

    冒泡排序算法原理及JAVA實現(xiàn)代碼

    關(guān)鍵字較小的記錄好比氣泡逐趟上浮,關(guān)鍵字較大的記錄好比石塊下沉,每趟有一塊最大的石塊沉底
    2014-01-01
  • springboot啟動流程過程

    springboot啟動流程過程

    Spring Boot 簡化了 Spring 框架的使用,通過創(chuàng)建 `SpringApplication` 對象,判斷應(yīng)用類型并設(shè)置初始化器和監(jiān)聽器,在 `run` 方法中,讀取配置并加載到 `Environment` 中,通過 Spring 事件機制和 `EnvironmentPostProcessor` 處理配置
    2025-02-02
  • SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理詳解

    SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理詳解

    在開發(fā)Spring Boot應(yīng)用時,處理響應(yīng)結(jié)果和異常的方式對項目的可維護(hù)性、可擴展性和團(tuán)隊協(xié)作有著至關(guān)重要的影響,統(tǒng)一結(jié)果返回和統(tǒng)一異常處理是提升項目質(zhì)量的關(guān)鍵策略之一,所以本文給大家詳細(xì)介紹了SpringBoot統(tǒng)一響應(yīng)和統(tǒng)一異常處理,需要的朋友可以參考下
    2024-08-08

最新評論