当前位置:首页 > PHP教程 > php应用 > 列表

PHP字符串word末字符实现大小写互换的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-04-25 11:26:55 浏览: 评论:0 

这篇文章主要介绍了PHP字符串word末字符实现大小写互换的方法,是涉及PHP字符串转换非常实用的技巧,需要的朋友可以参考下

本文实例讲述了PHP字符串word末字符实现大小写互换的方法。分享给大家供大家参考。具体实现方法如下:

一、要求:

给出一个字符串如 “A journey of, a thousand 'miles' must can't \"begin\" with a single step.” ,通过 PHP 程序处理变成 “a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP.”

这里需要注意:

1、每个单词最后的字符如果是大写就变成小写,如果是小写就变成大写。

2、需要考虑类似  can't 这种形式的转换。

3、标点符号(只考虑 , ' " . ;)不用变化。

二、参考算法如下:

  1. <?php 
  2.     function convertLastChar($str) { 
  3.         $markArr = array(", ""' ""\" "". ""; "); 
  4.         $ret = ""
  5.         for ($i = 0, $j = strlen($str); $i < $j$i++) { 
  6.             if ($i < $j - 2) { 
  7.                 $afterStr = $str{$i + 1} . $str{$i + 2}; 
  8.             } else if ($i < $j - 1) { 
  9.                 $afterStr = $str{$i + 1} . " "
  10.             } 
  11.             if (in_array($afterStr$markArr
  12.                 || $i == $j - 1 
  13.                 || $str{$i + 1} == " ") { 
  14.                 $ret .= strtoupper($str{$i}) === $str{$i
  15.                     ? strtolower($str{$i}) 
  16.                     : strtoupper($str{$i}); 
  17.             } else { 
  18.                 $ret .= $str{$i}; 
  19.             } //www.phpfensi.com 
  20.         } 
  21.         return $ret
  22.     } 
  23. ?> 

测试代码如下:

  1. <?php 
  2.     //test 
  3.     $str1 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step."
  4.     $str2 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. "
  5.     $str3 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a "
  6.     $str4 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a B"
  7.     $str5 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a b'"
  8.     $str6 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a B\""
  9.  
  10.     echo "source:<br/>" . $str1 . "<br/>result:<br/>" . convertLastChar($str1) . "<br/><br/>"
  11.     echo "source:<br/>" . $str2 . "<br/>result:<br/>" . convertLastChar($str2) . "<br/><br/>"
  12.     echo "source:<br/>" . $str3 . "<br/>result:<br/>" . convertLastChar($str3) . "<br/><br/>"
  13.     echo "source:<br/>" . $str4 . "<br/>result:<br/>" . convertLastChar($str4) . "<br/><br/>"
  14.     echo "source:<br/>" . $str5 . "<br/>result:<br/>" . convertLastChar($str5) . "<br/><br/>"
  15.     echo "source:<br/>" . $str6 . "<br/>result:<br/>" . convertLastChar($str6) . "<br/><br/>"
  16. ?> 

运行结果如下:

  1. source: 
  2. A journey of, a thousand 'miles' must can't "begin" with a single step. 
  3. result: 
  4. a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. 
  5. source: 
  6. A journey of, a thousand 'miles' must can't "begin" with a single step. 
  7. result: 
  8. a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. 
  9.  
  10. source: 
  11. A journey of, a thousand 'miles' must can't "begin" with a single step. a 
  12. result: 
  13. a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A 
  14.  
  15. source: 
  16. A journey of, a thousand 'miles' must can't "begin" with a single step. a B 
  17. result: 
  18. a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A b 
  19.  
  20. source: 
  21. A journey of, a thousand 'miles' must can't "begin" with a single step. a b' 
  22. result: 
  23. a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A B' 
  24.  
  25. source: 
  26. A journey of, a thousand 'miles' must can't "begin" with a single step. a B" 
  27. result: 
  28. a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A b" 

希望本文所述对大家的PHP程序设计有所帮助。

Tags: PHP大小写互换

分享到: