PHP字符串word末字符实现大小写互换的方法
本文实例讲述了PHP字符串word末字符实现大小写互换的方法。分享给大家供大家参考。具体实现方法如下:
一、要求:
给出一个字符串如“Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep.”,通过PHP程序处理变成“ajourneYoF,AthousanD'mileS'musTcan'T"begiN"witHAsinglEsteP.”
这里需要注意:
1、每个单词最后的字符如果是大写就变成小写,如果是小写就变成大写。
2、需要考虑类似 can't这种形式的转换。
3、标点符号(只考虑,'".;)不用变化。
二、参考算法如下:
<?php
functionconvertLastChar($str){
$markArr=array(",","'","\"",".",";");
$ret="";
for($i=0,$j=strlen($str);$i<$j;$i++){
if($i<$j-2){
$afterStr=$str{$i+1}.$str{$i+2};
}elseif($i<$j-1){
$afterStr=$str{$i+1}."";
}
if(in_array($afterStr,$markArr)
||$i==$j-1
||$str{$i+1}==""){
$ret.=strtoupper($str{$i})===$str{$i}
?strtolower($str{$i})
:strtoupper($str{$i});
}else{
$ret.=$str{$i};
}
}
return$ret;
}
?>
测试代码如下:
<?php
//test $str1="Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep."; $str2="Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep."; $str3="Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep.a"; $str4="Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep.aB"; $str5="Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep.ab'"; $str6="Ajourneyof,athousand'miles'mustcan't\"begin\"withasinglestep.aB\"";
echo"source:<br/>".$str1."<br/>result:<br/>".convertLastChar($str1)."<br/><br/>"; echo"source:<br/>".$str2."<br/>result:<br/>".convertLastChar($str2)."<br/><br/>"; echo"source:<br/>".$str3."<br/>result:<br/>".convertLastChar($str3)."<br/><br/>"; echo"source:<br/>".$str4."<br/>result:<br/>".convertLastChar($str4)."<br/><br/>"; echo"source:<br/>".$str5."<br/>result:<br/>".convertLastChar($str5)."<br/><br/>"; echo"source:<br/>".$str6."<br/>result:<br/>".convertLastChar($str6)."<br/><br/>"; ?>