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

  • 相关阅读:
    linux下mysql安装
    出现GC overhead limit exceeded 的解决方案
    什么是OOM?如何解决OOM问题!
    老司机告诉你:别再被忽悠,汽车节气门这样洗最养车
    HDU 4352 XHXJ's LIS(数位dp&状态压缩)
    Linux bash: scp: command not found的问题记录
    Codeforces Round #315 (Div. 2)
    【营销】非常重要
    firebug的应用
    powerdesigner中实现PDM到MYSQl数据库的转换
  • 原文地址:https://www.cnblogs.com/dwb91/p/10120294.html
Copyright © 2011-2022 走看看