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、标点符号(只考虑 , ' " . ;)不用变化。
二、参考算法如下:
- <?php
- function convertLastChar($str) {
- $markArr = array(", ", "' ", "\" ", ". ", "; ");
- $ret = "";
- for ($i = 0, $j = strlen($str); $i < $j; $i++) {
- if ($i < $j - 2) {
- $afterStr = $str{$i + 1} . $str{$i + 2};
- } else if ($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};
- } //www.phpfensi.com
- }
- return $ret;
- }
- ?>
测试代码如下:
- <?php
- //test
- $str1 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step.";
- $str2 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. ";
- $str3 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a ";
- $str4 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a B";
- $str5 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a b'";
- $str6 = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a B\"";
- 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/>";
- ?>
运行结果如下:
- source:
- A journey of, a thousand 'miles' must can't "begin" with a single step.
- result:
- a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP.
- source:
- A journey of, a thousand 'miles' must can't "begin" with a single step.
- result:
- a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP.
- source:
- A journey of, a thousand 'miles' must can't "begin" with a single step. a
- result:
- a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A
- source:
- A journey of, a thousand 'miles' must can't "begin" with a single step. a B
- result:
- a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A b
- source:
- A journey of, a thousand 'miles' must can't "begin" with a single step. a b'
- result:
- a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A B'
- source:
- A journey of, a thousand 'miles' must can't "begin" with a single step. a B"
- result:
- a journeY oF, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A b"
希望本文所述对大家的PHP程序设计有所帮助。
Tags: PHP大小写互换
- 上一篇:PHP基于CURL进行POST数据上传实例
- 下一篇:PHP冒泡算法详解(递归实现)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)