Home >Backend Development >PHP Tutorial >PHP字符串word末字符实现大小写互换的方法_PHP

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

WBOY
WBOYOriginal
2016-05-31 19:28:10720browse

本文实例讲述了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、标点符号(只考虑 , ' " . ;)不用变化。

二、参考算法如下:

代码如下:

    function convertLastChar($str) {
        $markArr = array(", ", "' ", "\" ", ". ", "; ");
        $ret = "";
        for ($i = 0, $j = strlen($str); $i             if ($i                 $afterStr = $str{$i + 1} . $str{$i + 2};
            } else if ($i                 $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;
    }
?>

测试代码如下:

代码如下:

    //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:
" . $str1 . "
result:
" . convertLastChar($str1) . "

";
    echo "source:
" . $str2 . "
result:
" . convertLastChar($str2) . "

";
    echo "source:
" . $str3 . "
result:
" . convertLastChar($str3) . "

";
    echo "source:
" . $str4 . "
result:
" . convertLastChar($str4) . "

";
    echo "source:
" . $str5 . "
result:
" . convertLastChar($str5) . "

";
    echo "source:
" . $str6 . "
result:
" . convertLastChar($str6) . "

";
?>

运行结果如下:

代码如下:

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程序设计有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn