• 实现字符串的翻转


    首先,要实现字符串的翻转,得对字符串中的单个字符进行操作

    a.先提取字符

        --提取字符需要按一定规则提取,因此需要有每个字符的一个标识

    b.然后对字符重新排序,翻转即按反序排

    1.实现英文字符串翻转

       提取字符:对于英文字符串,可以直接使用$string[$i]的方式提取字符,类似于读取数组元素值。

       反序排列字符:strlen()获得字符串的长度,for()循环反序读取字符串的字符并依次写入一个新字符串变量。

    方法a.

    实现如下:

    <?php
    function my_strrev($string)
    {
        $len=strlen($string);
        $new_str='';
        
        for($i=$len;$i>=0;$i--)
       {
           $new_str.=$string[$i]; 
        
       }
    
       return $new_str;
     
    }
    
    $mystr="happy new year";
    
    echo my_strrev($mystr);
    ?>
    输出:raey wen yppah

    说明:strlen()获取字符串的长度,用于指定字符的位置,结合$string[$i]使用

    方法b

    实现如下:

    $mystr="happy new year";
    
    echo strerv($mystr);
    输出:raey wen yppah

    2.实现中文字符串翻转

       在编写代码之前首先要了解,中文字符和西(英)文字符是采用的不同编码,一个中文字符(如使用utf-8编码)使用3个字节编码,而一个英文字符只使用1个字节

       编码;因此,如果以字节数衡量,一个中文字符的长度相当于三个英文字符的长度。在英文翻 转实现中使用的 strlen()函数获取的字符长度是英文字符长度,

       因为它是按单个字节来读取字符长度的,刚好一个字节对应一个英文字符;若用它来获取中文字符串的长度,获得的值将是实际中文字符长度(数)的3倍。总

       之,要明白strlen()是按字节来获取字符串字符长度的,英文是一个字节一个字符,中文是3个字节一个字符,严格来讲,strlen()是获取字符串占用的字节数。

       ps:我这里字符串长度的含义是指字符串所含字符的个数,一个长度对应一个相应字符。

       提取字符:中文字符串无法使用$string[$i]的方式获得单个中文字符,会返回空白,但不影响中英文混合字符串中对英文字符的获取,此方式类似strlen()函数

                     是以单个字节为单位查找字符的;这里我使用mb_substr()函数,它可以按照指定字符编码从一个字符串的指定位置开始获取指定长度(数目)的字

                     符(也即一个子字符串)。

       反向排序:使用mb_strlen(string $str, string $encoding)函数获取指定字符编码的字符串的字符长度,因此,这个函数中英文字符串均适用。

       实现如下:

    $mystr="我的节日,我做主ok";
    
    function my_cstrrev($string,$encoding='UTF-8')
    {
        $slen=mb_strlen($string);      
        $new_str='';
    
        for($i=$slen;$i>=0;$i—)  
        {
           $new_str.=mb_substr($string,$i,1,$encoding);   //英文字符也将转为$encoding编码     
         }
        return $new_str;
    }
    echo my_cstrrev($mystr).'</br>';
    输出:ko主做我,日节的我
  • 相关阅读:
    JuiceSSH:安卓平台免费好用的 SSH 客户端
    git&github-本地库推送到远程库
    git&githib-给远程库取别名
    Git分支管理的本质
    MySQL学习笔记(一)--逻辑架构学习
    mysql-主从备份问题小结
    Docker--数据管理之Volumes
    初识OpenSSH--1
    一个最简单的Dockfile实践
    构词法2
  • 原文地址:https://www.cnblogs.com/uooki/p/2893003.html
Copyright © 2020-2023  润新知