zoukankan      html  css  js  c++  java
  • 驼峰转换

    package com.starry.test;
     
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    public class Test {
     
        public static void main(String[] args) {        
            String str1 = "FermQASDASDSALove";//带下划线的字符串
            StringBuffer sbf = new StringBuffer(str1);//首先先转换成小写
            StringBuffer sb = underline(sbf);
            System.out.println(sb);    
        }
        
        /**
         * 下划线转驼峰
         * @param str
         * @return
         */
        public static StringBuffer camel(StringBuffer str) {
            //利用正则删除下划线,把下划线后一位改成大写
            Pattern pattern = Pattern.compile("_(\w)");
            Matcher matcher = pattern.matcher(str);
            StringBuffer sb = new StringBuffer(str);
            if(matcher.find()) {
                sb = new StringBuffer();
                //将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。
                //正则之前的字符和被替换的字符
                matcher.appendReplacement(sb, matcher.group(1).toUpperCase());
                //把之后的也添加到StringBuffer对象里
                matcher.appendTail(sb);            
            }else {
                return sb;
            }    
            return camel(sb);
        }
        
        
        /**
         * 驼峰转下划线
         * @param str
         * @return
         */
        public static StringBuffer underline(StringBuffer str) {
            Pattern pattern = Pattern.compile("[A-Z]");
            Matcher matcher = pattern.matcher(str);
            StringBuffer sb = new StringBuffer(str);
            if(matcher.find()) {
                sb = new StringBuffer();
                //将当前匹配子串替换为指定字符串,并且将替换后的子串以及其之前到上次匹配子串之后的字符串段添加到一个StringBuffer对象里。
                //正则之前的字符和被替换的字符
                matcher.appendReplacement(sb,"_"+matcher.group(0).toLowerCase());
                //把之后的也添加到StringBuffer对象里
                matcher.appendTail(sb);            
            }else {
                return sb;
            }    
            return underline(sb);
        }
     
    }

    转自https://blog.csdn.net/starry7953810/article/details/78562554

  • 相关阅读:
    利用SEH进行代码混淆
    HDU5294 Tricks Device(最大流+SPFA) 2015 Multi-University Training Contest 1
    输入字符串反序输出
    微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置
    不同编码页面之间表单的提交方法
    PHP登陆Session验证
    微信公众平台开发培训
    微信公众平台开发(98) UnionID
    微信电商再侵袭,腾讯要革淘宝的命
    微信企业号
  • 原文地址:https://www.cnblogs.com/dwb91/p/10120294.html
Copyright © 2011-2022 走看看