概述
这道题描述起来也是十分地简单,就是把原先用 '-','_'隔开的字符串转为驼峰法,也就是单词紧贴在一起,且单词的首字母大写(除了第一个单词之外)。我的想法是,将字符串按照 '-','_' 分割成多个数组,再将一个个数组,也就是单词拼接起来,就是我们需要的了。
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
最后
以上就是忐忑书本为你收集整理的字符串拼接删除_字符串转驼峰式的全部内容,希望文章能够帮你解决字符串拼接删除_字符串转驼峰式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复