我是靠谱客的博主 忐忑书本,最近开发中收集的这篇文章主要介绍字符串拼接删除_字符串转驼峰式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ddcfde8f57ce7657ac0514efce9e7db9.png

这道题描述起来也是十分地简单,就是把原先用 '-','_'隔开的字符串转为驼峰法,也就是单词紧贴在一起,且单词的首字母大写(除了第一个单词之外)。我的想法是,将字符串按照 '-','_' 分割成多个数组,再将一个个数组,也就是单词拼接起来,就是我们需要的了。

function toCamelCase($str){
  $str = str_replace('_','-',$str);
  $array = explode('-',$str);
  $newStr = $array[0];
  for($i=1;$i<count($array);$i++) {
    $newStr .= ucfirst($array[$i]);
  }
  return $newStr;
}

不过像这种对字符串的查找、替换等操作,用正则应该才是正解,接下来是大佬们的代码。

1、使用preg_replace_callback函数,第一个参数是正则表达式匹配到的字符,第二个参数是执行的回调函数,第三个参数是目标(字符串或者数组)。
使用正则匹配到 '-字母' 或者 '_字母' 的情况,然后所有的匹配位置都会以参数的形式传入到回调函数中,再执行回调函数,使首字母大写。
function toCamelCase($str){
  return preg_replace_callback("~[_-](w)~", function($m) { return strtoupper($m[1]); }, $str);
}
function toCamelCase($str){
    $str = str_replace("-", "_",$str);
    //获取第一个'-'出现的位置
    $firstPos = strpos($str, "_");
    //substr截取第一个单词,str_replace替换字符,ucwords将单词首字母转大写,以第二个参数为分隔符
    return substr($str,0,$firstPos).str_replace("_", "",ucwords(substr($str,$firstPos), "_"));
}
//str_replace(['_','-'],' ',$str)
,把-和_都转化为空格,然后ucwords实现首字母大写,再substr(sting,1),从第二个字符开始获取字符串,再拼接上$str[0],最后删除空格,任务完成。这里有个细节是,不能直接substr(sting,0),这样子第一个单词首字母会大写,与题目要求不符合。
function toCamelCase( $str ){
  return 
    str_replace(' ','', $str[0].
      substr(
        ucwords(
          str_replace(['_','-'],' ',$str)
        ), 1
      )
    );
}

看了大神的代码,真的是感觉太强了,还需要多多学习呀!

另外,如果你有兴趣,或者是有问题想要与我探讨,欢迎来访问我的博客:https:http://mu-mu.cn/blog

最后

以上就是忐忑书本为你收集整理的字符串拼接删除_字符串转驼峰式的全部内容,希望文章能够帮你解决字符串拼接删除_字符串转驼峰式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部