有人问如何把he_llo wo_rld 变成 HeLlo WoRld,估计应该是一道面试的基础题吧。

思路很多种,就看如何实现

思路一、先根据空格分隔,然后转大写,最后再拼接。代码如下

<?php
function change_string1($string="")
{
$array=explode(" ",$string);
foreach ($array as $key => $v)
{
$array[$key]=str_replace(" ","",ucwords(str_replace("_"," ",$v)));
}
$string=implode(" ",$array);
return $string;
} $string="he_llo wo_rld";
$string=change_string1($string);
var_dump($string);
?>

效果如图:

思路二、先将空格替换为两个空格,然后将下划线替换为一个空格,然后转大写,之后把两个空格替换为下划线,再把一个空格替换为空,再把下划线替换为一个空格,代码如下:

<?php
function change_string2($string="")
{
$string=str_replace(" "," ",$string);
$string=str_replace("_"," ",$string);
$string=ucwords($string);
$string=str_replace(" ","_",$string);
$string=str_replace(" ","",$string);
$string=str_replace("_"," ",$string);
return $string;
} $string="he_llo wo_rld";
$string=change_string1($string);
var_dump($string);
?>

效果如图:

思路三、采用字符串循环解决,代码如下:

<?php
function change_string3($string="")
{
$length=strlen($string);
for ($i=0; $i <$length ; $i++)
{
if($string{$i}===" "||$string{$i}==="_")
{
$string{$i+1}=strtoupper($string{$i+1});
}
}
$string=ucfirst(str_replace("_","", $string));
return $string;
} $string="he_llo wo_rld";
$string=change_string3($string);
var_dump($string);
?>

效果如图:

如何把he_llo wo_rld 变成 HeLlo WoRld的更多相关文章

  1. Java正则速成秘籍(三)之见招拆招篇

    导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...

随机推荐

  1. eclipse 集成 github

    1.eclipse markketplace 搜索 egit 安装 next next ........  安装好之后restart   2.开始配置git插件 配置git有2中方式 1.使用http ...

  2. mysql status

    要查看MySQL运行状态,要优化MySQL运行效率都少不了要运行show status查看各种状态,下面是参考官方文档及网上资料整理出来的中文详细解释: 状态名 作用域 详细解释 Aborted_cl ...

  3. logback日志模板与详解

    <pattern>的转换符说明: (这部分引用自http://aub.iteye.com/blog/1103685)转换符 作用 c {length } lo {length } logg ...

  4. 教程-在Delphi中怎么查看是否有内存泄漏(Delphi2007)+WIN7

    相关资料:1.http://bbs.csdn.net/topics/390630932?page=1 PS:1.本实例D2007及以上版本支持.2.检测内存工具 EurekaLog fastmm 实例 ...

  5. 传智播客《巴巴运动网视频教程(11-106)》avi格式以及兴许44集视频包括所有源码和资源

    (1)网上找巴巴运动网代码资源的时候找了非常久 基本上都是须要各种积分的 最终找到了一个不须要积分的推荐给大家.(支持迅雷下载) (2)兴许44集的jar包和项目文档等下载地址! watermark/ ...

  6. hive thrift 开机启动

    这个问题困扰我很久,之前redis的时候,也出现了这个问题,从网上找的thrift脚本没有一个好使的,最后通过修改/etc/rc.d/rc.local来执行一些非服务的命令,这样子就不需要像写服务那样 ...

  7. WPF路由事件二:路由事件的三种策略

    一.什么是路由事件 路由事件是一种可以针对元素树中的多个侦听器而不是仅仅针对引发该事件的对象调用处理程序的事件.路由事件是一个CLR事件. 路由事件与一般事件的区别在于:路由事件是一种用于元素树的事件 ...

  8. warning LNK4099: PDB 原因及解决方案

    0x00 现象及原因举例: warning LNK4099: PDB 'wxbase30ud.pdb' was not found with 'wxbase30ud.lib(any.obj)'使用VC ...

  9. Asp.Net之后台载入JS和CSS

    在Asp.Net开发时,用到的JS库.通用的CSS等,在很多页面都会用到,而每次都须要手动引入.相当麻烦.并且有时一旦忘了引用,还得找半天才干找到问题.那有没有什么办法可以一劳永逸的呢?答案是有的. ...

  10. CentOS 6.5安装KVM实践

    一,安装CentOS6.5,使用最小化的minimal安装二.安装完CentOS后,使用root登录配置网卡,使虚拟机可以使用外网上网 vi /etc/sysconifg/network-script ...