下划线转驼峰,3种实现方式效率对比

一时兴起想要比较一下效率如何,也顺便贴上代码。
总体而言,无论是驼峰转下划线还是下划线转驼峰,一般而言都不会超过5个毫秒,但是这个功能毕竟简单,积少成多之下,也会显得有些慢。鉴于毫秒的精度不够,我采用纳秒来量化执行效率。
结论是:
1.在使用java自带的正则表达式工具Pattern和Matcher的情况下,耗时非常大,最少也要约300万纳秒约合3毫秒才能完成,而基于字符串split或者replace,一般只需要70万纳秒约合0.7毫秒。但是正则工具的代码结构逻辑简单,而基于字符串的拆分和替换操作看起来有较多for和if而有些混乱。
2.基于StringBuilder进行字符串append效率和基于String的字符串拼接,在当前场合下效率差距不大,多数情况下两者都有时间波动偶尔有较大波动,可能和执作的时候CPU时间片分配有关。
3.此后的执行时间从5万纳秒到4万纳秒递减,与第一次时间差距非常大,应该是字符串常量池此时起了作用。速度非常快。
4.综合而言,从下划线转化为驼峰,比较快的情况稳定在50w纳秒左右,而从驼峰转化为下划线,耗时大大减少,比较快的情况下不到10万纳秒,常量池其作用后,耗时不足1w纳秒,相当于几个微秒就完成了。
环境信息:I5-6300HQ,12GDDR3内存,win10家庭版。
代码如下:实践证明这种小功能测效率纯粹是闲的蛋疼……
   
   
   
  1. package json.util;
  2. import java.util.Arrays;
  3. import java.util.regex.Matcher;
  4. import java.util.regex.Pattern;
  5. /**
  6. * Created by tm on 2016/11/24.
  7. * time : 15:45
  8. * project_name : code
  9. */
  10. public class UnderLineString2Camel {
  11. /**
  12. * 下划线转驼峰
  13. * @param underline
  14. * @return
  15. */
  16. public static String underline2Camel(String underline){
  17. Pattern pattern = Pattern.compile("[_]\\w");
  18. String camel = underline.toLowerCase();
  19. Matcher matcher = pattern.matcher(camel);
  20. while(matcher.find()){
  21. String w = matcher.group().trim();
  22. camel = camel.replace(w,w.toUpperCase().replace("_", ""));
  23. }
  24. return camel;
  25. }
  26. /**
  27. * 驼峰转下划线
  28. * @param camel
  29. * @return
  30. */
  31. public static String Camel2Underline(String camel){
  32. Pattern pattern = Pattern.compile("[A-Z]");
  33. Matcher matcher = pattern.matcher(camel);
  34. while(matcher.find()){
  35. String w =
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值