如何把he_llo wo_rld 变成 HeLlo WoRld
有人问如何把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的更多相关文章
- Java正则速成秘籍(三)之见招拆招篇
导读 正则表达式是什么?有什么用? 正则表达式(Regular Expression)是一种文本规则,可以用来校验.查找.替换与规则匹配的文本. 又爱又恨的正则 正则表达式是一个强大的文本匹配工具,但 ...
随机推荐
- TagsView.vue
1.TagsView.vue <template> <div class="tags-view-container"> <scroll-pane cl ...
- maven install 跳过test方法
方式1:用命令带上参数 mvn install -Dmaven.test.skip=true 方式2:在pom.xml里面配置 <build> <defaultGoal>com ...
- 替换python字典中的key值
- c++友元函数之---一种特殊的友情
类可以允许其他类或者函数访问它的私有成员,方法是令其他类或者函数成为它的友元.如果类想把一个函数或者类声明成它的友元,只需要增加一条以friend关键字开始的声明语句即可. 友元声明只能出现在类定义的 ...
- c++构造函数中调用构造函数---匿名对象再探
#include<iostream> #include<string> using namespace std; class Copy_construction { publi ...
- 各种hash函数
public class HashAlgorithms { /** * 加法hash * @param key 字符串 * @param prime 一个质数 * @return hash结果 */ ...
- iOS边练边学--Segue数据逆传(用block代替delegate)
一.block与方法的异同点: 相同点是都是保存代码段,什么时候执行,什么时候调用 不同点是block不受类或者对象的约束:方法收到了类或者对象的约束 二.思路:(通讯录练习) 在联系人控制器中,添加 ...
- Ajax-jQuery_Ajax_实例 ($.ajax、$.post、$.get)
Jquery在异步提交方面封装的很好,直接用AJAX非常麻烦,Jquery大大简化了我们的操作,不用考虑浏览器的诧异了. 推荐一篇不错的jQuery Ajax 实例文章,忘记了可以去看看, 地址为:h ...
- 防止短连接耗尽你的动态TCP端口
详见TCP协议https://en.wikipedia.org/wiki/Transmission_Control_Protocol但是TIME_WAIT是有时间窗口的,Linux默认是60秒.所以如 ...
- EasyUI效果--DataGrid的编辑效果
DataGrid的编辑效果是我目前使用的easyUI的第三个效果,相对于前两个,这个算是比较复杂点了. 运行起来的效果,大概就是这样,任意点击某行,然后该行变为可以编辑的,失去焦点之后,该行恢复 ...