PHP字符串word末字符大小写互换,字符串大小写
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、标点符号(只考虑 , ' " . ;)不用变化。
参考算法
<?<span>php </span><span>function</span> convertLastChar(<span>$str</span><span>) { </span><span>$markArr</span> = <span>array</span>(", ", "' ", "\" ", ". ", "; "<span>); </span><span>$ret</span> = ""<span>; </span><span>for</span> (<span>$i</span> = 0, <span>$j</span> = <span>strlen</span>(<span>$str</span>); <span>$i</span> < <span>$j</span>; <span>$i</span>++<span>) { </span><span>if</span> (<span>$i</span> < <span>$j</span> - 2<span>) { </span><span>$afterStr</span> = <span>$str</span>{<span>$i</span> + 1} . <span>$str</span>{<span>$i</span> + 2<span>}; } </span><span>else</span> <span>if</span> (<span>$i</span> < <span>$j</span> - 1<span>) { </span><span>$afterStr</span> = <span>$str</span>{<span>$i</span> + 1} . " "<span>; } </span><span>if</span> (<span>in_array</span>(<span>$afterStr</span>, <span>$markArr</span><span>) </span>|| <span>$i</span> == <span>$j</span> - 1 || <span>$str</span>{<span>$i</span> + 1} == " "<span>) { </span><span>$ret</span> .= <span>strtoupper</span>(<span>$str</span>{<span>$i</span>}) === <span>$str</span>{<span>$i</span><span>} </span>? <span>strtolower</span>(<span>$str</span>{<span>$i</span><span>}) </span>: <span>strtoupper</span>(<span>$str</span>{<span>$i</span><span>}); } </span><span>else</span><span> { </span><span>$ret</span> .= <span>$str</span>{<span>$i</span><span>}; } } </span><span>return</span> <span>$ret</span><span>; } </span>?>
测试
<?<span>php </span><span>//</span><span>test</span> <span>$str1</span> = "A journey of, a thousand 'miles' must can't \"begin\" with a single step."<span>; </span><span>$str2</span> = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. "<span>; </span><span>$str3</span> = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a "<span>; </span><span>$str4</span> = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a B"<span>; </span><span>$str5</span> = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a b'"<span>; </span><span>$str6</span> = "A journey of, a thousand 'miles' must can't \"begin\" with a single step. a B\""<span>; </span><span>echo</span> "source:<br/>" . <span>$str1</span> . "<br/>result:<br/>" . convertLastChar(<span>$str1</span>) . "<br/><br/>"<span>; </span><span>echo</span> "source:<br/>" . <span>$str2</span> . "<br/>result:<br/>" . convertLastChar(<span>$str2</span>) . "<br/><br/>"<span>; </span><span>echo</span> "source:<br/>" . <span>$str3</span> . "<br/>result:<br/>" . convertLastChar(<span>$str3</span>) . "<br/><br/>"<span>; </span><span>echo</span> "source:<br/>" . <span>$str4</span> . "<br/>result:<br/>" . convertLastChar(<span>$str4</span>) . "<br/><br/>"<span>; </span><span>echo</span> "source:<br/>" . <span>$str5</span> . "<br/>result:<br/>" . convertLastChar(<span>$str5</span>) . "<br/><br/>"<span>; </span><span>echo</span> "source:<br/>" . <span>$str6</span> . "<br/>result:<br/>" . convertLastChar(<span>$str6</span>) . "<br/><br/>"<span>; </span>?>
结果:
source:<span> A journey of</span>, a thousand 'miles' must can'<span>t "begin" with a single step. result: a journeY oF, A thousanD </span>'mileS' musT can'T "begiN" witH A singlE steP.<span> source</span>:<span> A journey of</span>, a thousand 'miles' must can'<span>t "begin" with a single step. result: a journeY oF, A thousanD </span>'mileS' musT can'T "begiN" witH A singlE steP.<span> source</span>:<span> A journey of</span>, a thousand 'miles' must can'<span>t "begin" with a single step. a result: a journeY oF, A thousanD </span>'mileS' musT can'T "begiN" witH A singlE steP.<span> A source</span>:<span> A journey of</span>, a thousand 'miles' must can'<span>t "begin" with a single step. a B result: a journeY oF, A thousanD </span>'mileS' musT can'T "begiN" witH A singlE steP.<span> A b source</span>:<span> A journey of</span>, a thousand 'miles' must can't "begin" with a single step. a b'<span> result</span>:<span> a journeY oF</span>, A thousanD 'mileS' musT can'T "begiN" witH A singlE steP. A B'<span> source</span>:<span> A journey of</span>, a thousand 'miles' must can'<span>t "begin" with a single step. a B" result: a journeY oF, A thousanD </span>'mileS' musT can'T "begiN" witH A singlE steP. A b"<span><br /></span>
我们可以看到,是符合预期的。
题目来源
http://blog.sijiaomao.com/?p=98,有改动(增加了can't这种),按改后的规则,原文答案全是错的。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

登录 CakePHP 是一项非常简单的任务。您只需使用一项功能即可。您可以记录任何后台进程(如 cronjob)的错误、异常、用户活动、用户采取的操作。在 CakePHP 中记录数据很容易。提供了 log() 函数
