zoukankan      html  css  js  c++  java
  • Sub 驼峰命名法(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"));
        }
    }
  • 相关阅读:
    js的this几种用法
    JS 事件绑定的几种方式 小笔记
    rem和em和px vh vw和% 移动端长度单位
    js 判断字符串中是否有某字符串
    angular2中的DOM操作之如何使input获取焦点
    angular2模板绑定样式
    论vw单位的实用性
    谷歌浏览器关闭同源策略方法
    video字幕无法显示,video视频在google中无法控制快进
    video视频铺满
  • 原文地址:https://www.cnblogs.com/Lightning-Kid/p/3611540.html
Copyright © 2011-2022 走看看