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

  • 相关阅读:
    一点一点学ASP.NET之基础概念——HttpModule
    Repeater为空时显示处理
    数据绑定控件的ItemDataBound事件与System.Data.Common.DbDataRecord
    Fckeditor编辑器添加【行距】
    gridview用法大全(二)
    Web.config自定义节点configSections
    C#中的特性(Attributes)(翻译)
    给程序员的忠告
    项目管理(转载)
    在ASP.NET 2.0中使用样式、主题和皮肤(转载)
  • 原文地址:https://www.cnblogs.com/dwb91/p/10120294.html
Copyright © 2011-2022 走看看