面试题:利用至少三种方式将小写英文转大写

方法1:利用ascii值减去32转为大写。

<?php
$str = "aBcD都是大写";
$array = str_split($str);//字符转数组
foreach($array as $k=>$v) {
    $ascii_value = ord($v);//字符转ascii值
    if ( $ascii_value >= 97  && $ascii_value <= 122 ) { //找出小写的字符
        $upperascii = $ascii_value - 32; //小写转大写
        $array[$k] = chr($upperascii);//ascii转字符
    }
}
echo implode($array).PHP_EOL;

方法2:也是最简单,利用mb开头的系统函数(mb_convert_case)来处理,切不可使用strtoupper这样会导致乱码。

<?php
$str = "aBcD都是大写";
echo mb_convert_case($str,MB_CASE_UPPER).PHP_EOL;

方法3:正则。如果有其他方法欢迎补充。

echo 'abc123ABC123' | perl -ple 's/([b-z])/\U$1\E/g'

此条目发表在笔记分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注