Convert string to camel case(将字符串转换为驼峰式大小写)

Examples

"the-stealth-warrior" gets converted to "theStealthWarrior"
"The_Stealth_Warrior" gets converted to "TheStealthWarrior"

Solutions

javascript版本

1.自己

function toCamelCase(str){
  let delimStr = str.split(/[-_]/);
  return delimStr.map((item,index)=>{
    if(index > 0){
      item = item.slice(0,1).toUpperCase() + item.slice(1);
    }
    return item;
  }).join("")
}

2.他人

function toCamelCase(str){
    var regExp = /[-_]\w/ig;
    return str.replace(regExp,match=>match.charAt(1).toUpperCase());
}

3.他人

function toCamelCase(str){
  //箭头函数第一个参数表示正则匹配到的字符串
  //箭头函数第二个参数表示正则分组()匹配到的字符串,所以.元字符必须带有()分组
  return str.replace(/[-_](.)/g, (_, c) => c.toUpperCase());
}

4.他人prototype方式

String.prototype.camelize = function() {
  return this
    .replace(/-([a-z]|[A-Z])/g, function (g) { return g[1].toUpperCase(); })
    .replace(/_([a-z]|[A-Z])/g, function (g) { return g[1].toUpperCase(); });
};

function toCamelCase(str){
  return str.camelize();
}

java版本

1.自己

import java.lang.String;
class Solution{

  static String toCamelCase(String s){
    String[] splitStr = s.split("[-_]");
    s = splitStr[0];
    for(int i = 1 ; i < splitStr.length; i++){
      s += splitStr[i].substring(0,1).toUpperCase() + splitStr[i].substring(1).toLowerCase();
    }
    return s;
    
  }
}

2.他人

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.lang.StringBuilder;

class Solution{

  static String toCamelCase(String s){
    Matcher m = Pattern.compile("[_|-](\\w)").matcher(s);
    StringBuffer sb = new StringBuffer();
    while (m.find()) {
        m.appendReplacement(sb, m.group(1).toUpperCase());
    }
    return m.appendTail(sb).toString();
  }
}

关于appendReplacement方法、appendTail方法参考:https://www.cnblogs.com/Hdaydayup/p/7071363.html

3.他人

import java.util.Arrays;
import java.util.stream.Collectors;

class Solution{

  static String toCamelCase(String s){
        String[] stringArray = s.split("[-|_]");

        return stringArray[0] + Arrays.stream(stringArray).skip(1).map(i -> i.substring(0,1).toUpperCase()+i.substring(1))
                .collect(Collectors.joining());
    }
}

4.他人

import java.util.Arrays;

class Solution{

  static String toCamelCase(String str){
    String[] words = str.split("[-_]");
    return Arrays.stream(words, 1, words.length)
            .map(s -> s.substring(0, 1).toUpperCase() + s.substring(1))
            .reduce(words[0], String::concat);
  }
}

关于reduce方法参考:https://blog.csdn.net/qq_40008535/article/details/89741094

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值