java驼峰转下划线,下划线转驼峰

来源:互联网 发布:尽知天下事前面一句 编辑:程序博客网 时间:2024/04/30 10:37
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);}}