• 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"));
        }
    }
  • 相关阅读:
    WPF程序国际化
    MVVM框架搭建
    最全前端开发面试问题及答案整理
    最小化运行批处理
    C#中App.config文件配置获取
    VS2017 打包成exe
    Inno Setup生成桌面快捷方式
    C#文件读写(txt 简单方式)
    Flume 学习笔记之 Flume NG概述及单节点安装
    快学Scala 第二十课 (trait的构造顺序)
  • 原文地址:https://www.cnblogs.com/Lightning-Kid/p/3611540.html
Copyright © 2020-2023  润新知