1. 程式人生 > >駝峰命名法(CamelCase)和下劃線風格(UnderScoreCase)字串之間的轉換工具類

駝峰命名法(CamelCase)和下劃線風格(UnderScoreCase)字串之間的轉換工具類

public class CamelCaseUtils {

    private static final char SEPARATOR = '_';

    public static String toUnderlineName(String s) {
        if (s == null) {
            return null;
        }

        StringBuilder sb = new StringBuilder();
        boolean upperCase = false;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);

            boolean nextUpperCase = true;

            if (i < (s.length() - 1)) {
                nextUpperCase = Character.isUpperCase(s.charAt(i + 1));
            }

            if ((i >= 0) && Character.isUpperCase(c)) {
                if (!upperCase || !nextUpperCase) {
                    if (i > 0) sb.append(SEPARATOR);
                }
                upperCase = true;
            } else {
                upperCase = false;
            }

            sb.append(Character.toLowerCase(c));
        }

        return sb.toString();
    }

    public static String toCamelCase(String s) {
        if (s == null) {
            return null;
        }

        s = s.toLowerCase();

        StringBuilder sb = new StringBuilder(s.length());
        boolean upperCase = false;
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);

            if (c == SEPARATOR) {
                upperCase = true;
            } else if (upperCase) {
                sb.append(Character.toUpperCase(c));
                upperCase = false;
            } else {
                sb.append(c);
            }
        }

        return sb.toString();
    }

    public static String toCapitalizeCamelCase(String s) {
        if (s == null) {
            return null;
        }
        s = toCamelCase(s);
        return s.substring(0, 1).toUpperCase() + s.substring(1);
    }

    public static void main(String[] args) {
        System.out.println(CamelCaseUtils.toUnderlineName("ISOCertifiedStaff"));
        System.out.println(CamelCaseUtils.toUnderlineName("CertifiedStaff"));
        System.out.println(CamelCaseUtils.toUnderlineName("UserID"));
        System.out.println(CamelCaseUtils.toCamelCase("iso_certified_staff"));
        System.out.println(CamelCaseUtils.toCamelCase("certified_staff"));
        System.out.println(CamelCaseUtils.toCamelCase("user_id"));
    }
}
轉自:http://www.oschina.net/code/snippet_870897_19481

相關推薦

駝峰命名(CamelCase)劃線風格(UnderScoreCase)字串之間轉換工具

public class CamelCaseUtils { private static final char SEPARATOR = '_'; public static String toUnderlineName(String s) {

駝峰命名(CamelCase)劃線命名(UnderScoreCase)字元之間轉換

使用Guava CaseFormat類進行轉換 CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE,“ClassName”)-->class_name CaseFormat.LOWER_UNDERSCORE.to

駝峰命名劃線風格的互轉

下劃線轉駝峰比較簡單,直接根據下劃線打散成陣列,每個子項首字元轉大寫,再做字串拼接即可。 駝峰轉下劃線風格,稍微複雜一些。剛開始我沒有思路,後來想到,可以遍歷字串,遇到大寫字母將其轉換成小寫,並在

駝峰命名劃線命名互轉php實現

res rst 命名 turn case rds rto step class 駝峰命名和下劃線命名經常需要互轉,下面提供兩種php的實現方式.第一種方法效率相對差一些,實現方式如下: //駝峰命名轉下劃線命名 function toUnderScore($str

Java駝峰命名劃線命名轉換

import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 駝峰命名轉換 * * @author 47475 * */ public class Tool { private static Patte

駝峰命名模態對話框

命名法 script 編寫 數組去重 第一個 class length window camel   模態對話框   window.showModalDialog("url","向目標對話框傳的值","窗口特征參數") 打開模態對話框   模態對話框必須關掉才能對後端操作。

駝峰命名駝峰命名的區別

天才 理解 color 小寫 一個 駝峰命名 nbsp round 大寫 之前一直知道有駝峰命名法,今天才知道駝峰命名法還分大駝峰和小駝峰,現將二者區別說一下: 1.大駝峰,每一個單詞的首字母都大寫,例如:AnamialZoo,JavaScript

Python:字串劃線風格駝峰風格

#!/usr/bin/env python # coding:UTF-8 """ @version: python3.x @author:曹新健 @contact: [email protected] @software: PyCharm @file: 下劃線風格轉駝峰風格.py @t

駝峰命名駝峰命名

前言 我們在做專案的時候,命名格式必須統一,這樣才會方便不同人之間的編碼閱讀!,所以今天就來說一下駝峰命名法! 駱峰式命名法(Camel-Case)是電腦程式編寫時的一套命名規則(慣例)。 駱峰式命名法就是當變數名或函式名是由一個或多個單字連結在一起,而構成的唯一識別字時

駝峰,連線符,劃線命名等互相轉換 CaseFormat.LOWER_CAME等

1 jar: guava-r05.jar 2 String orderColumn = "orderColumn"; //輸入是LOWER_CAMEL,輸出是LOWER_UNDERSCORE orderColumn = CaseForm

駝峰劃線命令轉換

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Camel_UnderlineConverter { public static String camel4und

命名更改小結:劃線駝峰,或駝峰劃線

1、下劃線轉駝峰 const toCamel = str =>str.replace(/([^_])(?:_+([^_]))/g, (_,p1, p2)=>p1+p2.toUpperCas

java 駝峰劃線互轉

public class Tool{ private static Pattern linePattern = Pattern.compile(“_(\w)”); /*下劃線轉駝峰/ public stati

實體轉map,駝峰屬性名稱轉換劃線風格

 背景:因順豐快遞API的HTTP傳輸格式為JSON,且屬性為下劃線風格(如圖二),但JAVA實體類屬性名稱遵循了駝峰規範,故寫了一個工具類,作為轉換。   package com.imall.crm; import com.imall.crm.domain.Pre

springmvc配置MappingJackson2HttpMessageConverter實現屬性駝峰劃線轉換

v需求   php呼叫java介面時,因為php那邊的屬性都是下劃線風格,java這邊的屬性都是駝峰的風格。配置springmvc的json轉換,在requestBody的時候(呼叫物件的set 方法)將java屬性name對映成下劃線形式 和 請求的引數匹配;在respo

jdk7的二進制整數劃線分隔符

int println pos alt string 技術 .com 技術分享 pre 1 //二進制整數: 2 public class TestBinaryNum{ 3 public static void main(String[] args) { 4

案例:用js實現字符串的駝峰命名

命名法 orm 修改 UNC get 表示法 駝峰 transform tran <script> //需求:編寫一個函數,將如下字符串‘get-element-by-id‘修改為駝峰表示法‘getElementById‘ function tran

C語言中變數名及函式名的命名規則與駝峰命名

一、C語言變數名的命名規則:(可以字母,數字,下劃線混合使用) 1. 只能以字母或下劃線開始;2. 不能以數字開始;3. 一般小寫;4. 關鍵字不允許用(eg:int float=2//error  float 為保留字不允許用); 二、函式名的命名規則 1.見名知意;2.自定義函式函式名首字

C語言中變量名及函數名的命名規則與駝峰命名

char 都是 this 表示 介紹 程序設計 代碼 必須 不同的 一、C語言變量名的命名規則:(可以字母,數字,下劃線混合使用) 1. 只能以字母或下劃線開始;2. 不能以數字開始;3. 一般小寫;4. 關鍵字不允許用(eg:int float=2//error fl

只能輸入英文數字劃線橫線的正則表示式

var reg="^[A-Za-z0-9-_]+$"  ; var regus = new RegExp(regs); regus.test("所要驗證的字串")  true 符合 false 不符合     中英文