字符串转驼峰式

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

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:mu-mu.cn/blog

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35871.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

旋转编码器工作原理

旋转编码器工作原理 一、旋转编码器的原理和特点&#xff1a; 旋转编码器是集光机电技术于一体的速度位移传感器。当旋转编码器轴带动光栅盘旋转时&#xff0c;经发光元件发出的光被光栅盘狭缝切割成断续光线&#xff0c;并被接收元件接收产生初始信号。该信号经后继电路处理后…

坐标系之间的主要转换

一、两矢量之间的转换 二、平面坐标系之间的转换 在平面内逆时钟旋转角度theta 旋转前的坐标[x,y],旋转后的坐标[x’,y’] 三、三维坐标系之间的转换 1、绕z轴旋转(以z轴为轴在平面内逆时钟旋转角度alpha) 旋转前的坐标[xp,yp,zp],旋转后的坐标[xq,yq,zq] [ x q y q z q ]…

玩转MySQL ------使用java获取数据库的原信息

玩转数据库的元信息操作&#xff0c;主要是两个类: 1) DatabaseMetaData类: 包含驱动信息、数据库名、表名(视图、存储过程等) 通过con.getMetaData()可获得一个DatabaseMetaData类对象 2) ResultSetMetaData类: 包含表结构相关的信息&#xff0c;如:列(字段)的个数、名字、…

第4章 初识STM32—零死角玩转STM32-F429系列

第4章 初识STM32 全套200集视频教程和1000页PDF教程请到秉火论坛下载&#xff1a;www.firebbs.cn 野火视频教程优酷观看网址&#xff1a;http://i.youku.com/firege 本章参考资料&#xff1a;1、《STM8和STM32产品选型手册》2、SetupSTM32CubeMX-4.11.0.exe 4.1 什么是…

玩转大数据之——通过java操作office/wps的 EXCEL

操作Office文档&#xff0c;要用到apache公司的一个工具包: poi-3.7-20101029.jar poi插件的使用方式类似dom技术 不同版本&#xff1a; 接下来进行演示功能: 1.用纯Java技术实现创建一个名为a.xls的文件(工作薄)&#xff0c; 在其中新建一个"表1"的sheet,往B9单元…

Pandas —— resample()重采样和asfreq()频度转换

一、resample resample()进行重采样。 重采样&#xff08;Resampling&#xff09;指的是把时间序列的频度变为另一个频度的过程。把高频度的数据变为低频度叫做降采样&#xff08;downsampling&#xff09;&#xff0c;把低频度变为高频度叫做升采样&#xff08;upsampling&am…

玩转MySQL(4)---多表关联

一、首先&#xff0c;我们可以查看数据库的各种变量&#xff1a; 1.SHOW VARIABLES 查看数据库的变量 2.查看当前数据库的编码 SHOW VARIABLES WHERE variable_name LIKE character%; 3.解决中文乱码&#xff0c;如下三个编码保持一致就可以。 character_set_client、charac…

adb连接木木模拟器

木木模拟器调试到开发模式&#xff0c;在一般在\Nemu\vmonitor\bin中&#xff0c;运行命令行adb connect 127.0.0.1:7555

玩转MySQL -----处理大数据对象

一、大数据对象简介 1.LOB&#xff08;Large Object&#xff0c;大型对象&#xff09;类型的字段现在用得越来越多了。因为这种类型的字段&#xff0c;容量大&#xff08;最多能容纳4GB的数据&#xff09;&#xff0c;且一个表中可以有多个这种类型的字段&#xff0c;很灵活&am…

http 转 https 操作步骤

http 转https 花了很多的时间&#xff0c;走了很多的网弯路&#xff0c;最后还是弄好了 步骤&#xff1a; 第一步&#xff1a; 进入阿里云账号&#xff0c;进入 控制台 -》 安全&#xff08;云盾&#xff09; -》 CA证书服务 -》 购买证书 -》 注意&#xff1a;这里选项的时候…

python数据类型转换

Python数据类型转换 Python数据类型之间的转换 函数描述 int(x [,base]) 将x转换为一个整数 long(x [,base] ) 将x转换为一个长整数 float(x) 将x转换到一个浮点数 complex(real [,imag]) 创建一个复数 str(x) 将对象 x 转换为字符串 repr(x) 将对象 x 转换为表达式…

搭建frida+木木模拟器运行环境

目录 pip安装frida安装木木模拟器开启模拟器的root权限打开模拟器USB调试安装RE文件管理器 下载frida服务端-Android下载frida-server文件移动文件到tmp下 使用adb连接mumu模拟器设置frida-server权限并启动查看是否启动成功 使用python调用 pip安装frida 本机环境win10 (AMD6…

利用ChatGPT 5分钟制作一份思维导图

一、利用ChatGPT列出思维导图大纲 二、利用ChatGPT继续将大纲转化为markdown语法 三、将上面内容复制到txt文档中保存 四、修改文件名后缀为md 五、将生成的md文件导入到xmind中 打开xmind软件&#xff0c;通过「文件→导入→markdown」&#xff0c;选择我们刚刚创建的文件导入…

音视频技术开发周刊 | 302

每周一期&#xff0c;纵览音视频技术领域的干货。 新闻投稿&#xff1a;contributelivevideostack.com。 ChatGPT神器Code Interpreter终于开放&#xff0c;到底怎么用&#xff1f;这里有一份保姆级教程 Code Interpreter 已经正式开放。 上海世界AI大会&#xff1a;MidJourney…

Window之系统开机Administrator账户被停用

在我们的Win7系统开机时如果没有设置其他账户&#xff0c;并且我们的Administrator账户被停用怎么进入Win7系统呢&#xff1f; 解决方法&#xff1a; 重启电脑后按F8进入安全模式&#xff0c; 右键点击“我的电脑” -- “管理” -- “本地用户和组” -- “用户” -- 右键“Ad…

Spug“账户已被系统禁用”的解决办法

前置文章&#xff1a; Spug发布前端项目实战全过程https://blog.csdn.net/wdy_2099/article/details/120215392 Spug设置报警提醒功能&#xff08;钉钉、微信、邮箱&#xff09;落地详细https://blog.csdn.net/wdy_2099/article/details/120224867 问题&#xff1a;未知原因导…

桌面计算机安全禁用账户,Win10电脑提示“你的账户已被停用,请向系统管理员咨询”的解决教程...

有用户在安装 解决方法一&#xff1a; 1、此情况可以长按电源键强制关机再开机看到WIN10登陆界面时再次长按电源键强制关机,如此三次后再开机会看到“查看高级修复选项”的按钮,点此按钮会进入WINRE环境,选择“疑难解答”&#xff1b; 2、选择“高级选项”&#xff1b; 3、选择…

【转】您的账户已被停用,请向系统管理员咨询解决办法

升级win10后发现开机时进入安全模式长按F8已经没用了&#xff0c;其实win10中把安全模式放入了系统修复模块&#xff0c;下面就来介绍下win10如何进入安全模式。 进入下边这个界面可通过按住 SHIFT 点击重启即可 工具/原料 win10 方法/步骤 打开“开始”菜单&#xff0c;找到里…

您的账户已被停用,请向系统管理员咨询 解决方案(亲测有效)

当你的电脑误操作了以下步骤,或者被篡改了设置了这里 那恭喜你,重启后就登不上Administrator账户了 首先看一下网上的三种无效方式 无效方式一:安全模式进入用户和组 一般两种方式进入安全模式: 方式一:F8进入 方式二:按住shift 重启 (1)选中其中的安全模式,在安全…