1.托清风捎去思念,期盼来的这般悄无声息
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* 驼峰法-下划线互转
* @author cshaper
* @since 2015.07.04
* @version 1.0.0
*/
public class UnderlineToCamelUtils {
/**
* 下划线转驼峰法
* @param line 源字符串
* @param smallCamel 大小驼峰,是否为小驼峰
* @return 转换后的字符串
*/
public static String underlineToCamel(String line,boolean smallCamel){
if(line==null||"".equals(line)){
return "";
}
StringBuffer sb=new StringBuffer();
Pattern pattern=Pattern.compile("([A-Za-z\d]+)(_)?");
Matcher matcher=pattern.matcher(line);
while(matcher.find()){
String word=matcher.group();
sb.append(smallCamel&&matcher.start()==0?Character.toLowerCase(word.charAt(0)):Character.toUpperCase(word.charAt(0)));
int index=word.lastIndexOf('_');
if(index>0){
sb.append(word.substring(1, index).toLowerCase());
}else{
sb.append(word.substring(1).toLowerCase());
}
}
return sb.toString();
}
/**
* 驼峰法转下划线
* @param line 源字符串
* @return 转换后的字符串
*/
public static String camelToUnderline(String line){
if(line==null||"".equals(line)){
return "";
}
line=String.valueOf(line.charAt(0)).toUpperCase().concat(line.substring(1));
StringBuffer sb=new StringBuffer();
Pattern pattern=Pattern.compile("[A-Z]([a-z\d]+)?");
Matcher matcher=pattern.matcher(line);
while(matcher.find()){
String word=matcher.group();
sb.append(word.toUpperCase());
sb.append(matcher.end()==line.length()?"":"_");
}
return sb.toString();
}
}
2测试
public static void main(String[] args) {
String line="I_HAVE_AN_IPANG3_PIG";
String camel=underlineToCamel(line,true);
System.out.println(camel);
System.out.println(camelToUnderline(camel));
}

最后
以上就是壮观机器猫最近收集整理的关于JAVA驼峰和下划线互相转换的全部内容,更多相关JAVA驼峰和下划线互相转换内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复