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/>"; ?>