美文网首页
驼峰转下划线,下划线转驼峰工具类

驼峰转下划线,下划线转驼峰工具类

作者: 树深时见鹿丶 | 来源:发表于2020-02-11 15:38 被阅读0次

    public class CamelCaseUtils{

        private static final char SEPARATOR ='_';

        /**

        * 驼峰转下划线

        * @param s

        * @return

        */

        public static StringtoUnderlineName(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))||Character.isDigit(s.charAt(i +1));

                }

                if ((i >=0) && Character.isUpperCase(c)) {

                    boolean flag =!upperCase || !nextUpperCase;

                    if (flag) {

                        if (i >0) sb.append(SEPARATOR);

                    }

                    upperCase =true;

                } else {

                    upperCase =false;

                }

                sb.append(Character.toUpperCase(c));

            }

            return sb.toString();

        }

        /**

        * 下划线转小驼峰

        * @param s

        * @return

        */

        public static StringtoCamelCase(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();

        }

        /**

        * 下划线转大驼峰

        * @param s

        * @return

        */

        public static StringtoCapitalizeCamelCase(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("ABCD1111"));

            System.out.println(CamelCaseUtils.toUnderlineName("AaBCD1111"));

            System.out.println(CamelCaseUtils.toUnderlineName("AaBCDaaA1111"));

            System.out.println(CamelCaseUtils.toCamelCase("A_aaB_C_DaaA1111"));

            System.out.println(CamelCaseUtils.toCapitalizeCamelCase("A_aaB_C_DaaA1111"));

        }

    }

    相关文章

      网友评论

          本文标题:驼峰转下划线,下划线转驼峰工具类

          本文链接:https://www.haomeiwen.com/subject/owexfhtx.html